IIR Filter auf Matlab realisieren.

Gast #4644175
Lesenswert?

Ich schaffe es nicht einen IIR Filter zu ploten. Ein funktionierenden 
Frequenzganz ist möglich siehe code

1
h1 = zeros(1,8);
2
h1(1,1:3) = [0.5 1 0.5];  
3

4
N = 1024;
5
H1 = fft(h1,N);
6
f = linspace(-1/2,1/2,N);
7
roots(h1)
8
figure(1)
9
plot(f,fftshift(abs(H1)),'g');
10
hold on;
11
grid on;
12
xlabel('f/f_a'); ylabel('H(f)');
13
title('Frequenzgang');
14

15
figure(2)
16
plot(f,fftshift(20*log10(abs(H1))),'g');
17
hold on;
18
grid on;
19
xlabel('f/f_a'); 
20
ylabel('H(f)');
21
title('Frequenzgang dB');


Ein FIR Filter funktioniert wunderbar. Teste den Code. Ich kann aber 
keinen IIR FIlter programmieren. ich habe es mit tf probiert davon kann 
man aber keine fft machen. wie kann ich den einen gebrochen Rationale 
Funktionen. Einen BRuch darstellen. Dann könnte ich den IIR Filter 
realisieren... Ich weiß gerade nicht weiter.

Eigentlich will ich nur diese stelle auf einen Gebrochen rationale 
funktion ändern siehe untern
1
h1 = zeros(1,8);
2
h1(1,1:3) = [0.5 1 0.5];


Das ich an dieser Stelle des Codes einen bruch realisieren kann
Gast #4644364
Lesenswert?

Monster,

so geht das.

Cheers
Detlef

clear

fb=[1 -1 1];
fa=[1 -1.5 1];
N = 1024;
H1=freqz(fb,fa,N);
f=1:N;
figure(1)
plot(f,(abs(H1)),'g');
xlabel('f/f_a'); ylabel('H(f)');
title('Frequenzgang');

figure(2)
plot(f,(20*log10(abs(H1))),'g');
xlabel('f/f_a');
ylabel('H(f)');
title('Frequenzgang dB');

return

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren