FIR design - convolutie methode

C

claudiocamera

Guest
Ik kwam het volgende probleem in het ontwerp met behulp van FIR-venster en convolutie technieken.

Project een FIR filter met behulp van een Hamming-venster te bereiken de volgende specificaties:

PassBand 0,3-3,4 kHz
Stopband 0-0,2 e 4-8 kHz
Stopband atenuation> 25 dB
Sampling-frequentie 32 kHz

Sinds de overgang band anders is, om het probleem op te lossen is het noodzakelijk om een low-pass filter te bouwen, dan is een hoogdoorlaatfilter en convolutie passen op hun coeficient, met deze procedure is het mogelijk om een banddoorlaatfilter vinden.Het uitvoeren van deze stappen, vond ik een juiste grootte perceel maar een rare fase plot.

Hieronder presenteer ik de matlab code.Ik zou het waarderen als iemand het kan draaien realiseren wat er mis is.

In weerwil van de fase gevonden lineair is, zoals vereist door FIR-filters, het omgekeerde is van wat het zou moeten worden afgezien, het is de hele band tot Fs / 2, meestal de lineaire fase wordt alleen in de PassBand, dat is waarom Ik denk dat er iets mis is.

Het is een academisch probleem dat ik heb om een code te bouwen en ik ben niet toegestaan om fir1 COMAND, noch Remez, fir2 of enig ander gebruik, weet ik dat ik dit probleem kan oplossen met behulp van fir1 opdracht, maar dat is niet het punt, de oplossing moet worden gegeven door convolutioning de twee filter coëfficiënten, dus moet ik weten wat er mis is met de matlab code die volgt:

% algemene gegevens
Ap = 3;
Zoals = 25;
Fs = 32000;

% Nemen van de kleinere rimpel
dp = (10 ^ (Ap/20)) -1; ds = 10 ^ (-As/20);
d = min (DP, ds);
Zoals = -20 * log10 (d);

% Lowpass:

fp = 3400;
fs = 4000;% Normaliseren frequenties

FPN = fp / Fs;
FSN = fs / Fs;
WCN = 2 * pi * FPN;

% Filter om Hamming venster
N = ceil (3,3 / (FSN-FPN));

% Hamming window
WD = Hamming (N-1);

Ideal% filter
nb = 1: (N-1) / 2;
hd = 2 * FPN * sin (na. * WCN). / (na. * WCN);
HDN = [fliplr (hd) 2 * FPN hd];

% windowing
hn = HDN .* wd ';% Lage-frequenties

FP1 = 300;
FS1 = 200;

% Normaliseren frequenties

fpn1 = fp1/Fs;
fsn1 = fs1/Fs;
wcn1 = 2 * pi * fpn1;

% Filter om Hamming venster
N1 = ceil (3,3 / (fpn1-fsn1));

% Hamming window
WD1 = Hamming (N1);

Ideal% filter
NA1 = 1: (N1-1) / 2;
hd1 =- 2 * fpn1 * sin (na1. * wcn1). / (na1. * wcn1);
hdn1 = [fliplr (hd1) 1-2 * fpn1 hd1];

% windowing
HN1 = hdn1 .* WD1 ';

% Filterbreedte coeficients

H = conv HN1 (hn);

Plotten% frequentierespons

freqz (H, 1512, Fs);

 

Welcome to EDABoard.com

Sponsor

Back
Top