matlab的dft谱分析,数字信号处理基于matlab(用DFT作谱分析,窗函数的设计).doc

数字信号处理基于matlab(用DFT作谱分析,窗函数的设计) 实验一:用DFT作谱分析 x1=[1 1 1 1]; x2=[1 2 3 4 4 3 2 1]

数字信号处理基于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))/(