数字信号处理基于matlab(用DFT作谱分析,窗函数的设计)
实验一:用DFT作谱分析
x1=[1 1 1 1];
x2=[1 2 3 4 4 3 2 1];
n1=0:8;x3=cos(n1*pi/4);
n2=0:8;x4=sin(n2*pi/8);
figure
subplot(2,2,1);stem(x1);
subplot(2,2,2);stem(x2);
subplot(2,2,3);stem(x3);
subplot(2,2,4);stem(x4);
N1=8;
F1x1=fft(x1,N1);
F1x2=fft(x2,N1);
F1x3=fft(x3,N1);
F1x4=fft(x4,N1);
figure
subplot(2,2,1);stem(abs(F1x1));
subplot(2,2,2);stem(abs(F1x2));
subplot(2,2,3);stem(abs(F1x3));
subplot(2,2,4);stem(abs(F1x4));
N3=256;
F3x1=fft(x1,N3);
F3x2=fft(x2,N3);
F3x3=fft(x3,N3);
F3x4=fft(x4,N3);
w=2/N3*[0:N3-1];
figure
subplot(2,2,1);plot(w,abs(F3x1));
subplot(2,2,2);plot(w,abs(F3x2));
subplot(2,2,3);plot(w,abs(F3x3));
subplot(2,2,4);plot(w,abs(F3x4));
N6=64;
t=0:1/64:1/64*(N6-1);
x6=cos(8*pi*t)+cos(16*pi*t)+cos(20*pi*t);
figure;plot(x6)
Fx6=fft(x6,N6);N=64
w6=2/N6*[0:N6-1];
figure;plot(w6,Fx6)
实验二:用双线性法设计IIR数字滤波器
clear all;close all;clc
T=1;
Wp=2/T*tan(0.2*pi/2);Ws=2/T*tan(0.3*pi/2);
Rp=1;Rs=15;
[N,Wc]=buttord(Wp,Ws,Rp,Rs,'s');
[B,A]=butter(N,Wc,'s');
[C,D]=bilinear(B,A,1/T);
W=0:0.001*pi:0.5*pi;
H=freqs(B,A,W);
Hd=freqz(C,D,W);
figure
subplot(3,1,1);plot(W/pi,abs(H))
grid on
title('模拟巴特沃斯滤波器')
xlabel('Frequency/Hz')
ylabel('Magnitude')
subplot(3,1,2);plot(W/pi,abs(Hd))
grid on
title('数字巴特沃斯滤波器')
xlabel('Didital Frequency/pi')
ylabel('Magnitude')
Hd_db=-20*log(abs(Hd(1)./(abs(Hd)+eps)));
subplot(3,1,3);plot(W/pi,Hd_db)
grid on
title('数字巴特沃斯滤波器波特图')
xlabel('Didital Frequency/pi')
ylabel('bd_Magnitude')
x=[-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,-2,-4.8,12,12,10,6,6,6,4,0,0,0,0,0,-2,-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0];
M=512;fx=fft(x,M);
y=filter(C,D,x);
fy=fft(y,M);
f=1/512*[0:511]*250
figure
subplot(2,1,1);plot(x);
subplot(2,1,2);plot(f,abs(fx));
figure
subplot(2,1,1);plot(y);
subplot(2,1,2);plot(f,abs(fy));
心电图谱分析
1、滤波前波形和频谱
2、滤波后波形和频谱
实验三:用窗函数法设计FIR数字滤波器
一、N=33,用四种窗设计滤波器
function hd=ideal(N,wc)
for n=0:N-1
if n==(N-1)/2
hd(n+1)=wc/pi;
else hd(n+1)=sin(wc*(n-(N-1)/2))/(