数字信号处理课程设计报告.docx

上传人:b****5 文档编号:3432111 上传时间:2022-11-23 格式:DOCX 页数:13 大小:168.57KB
下载 相关 举报
数字信号处理课程设计报告.docx_第1页
第1页 / 共13页
数字信号处理课程设计报告.docx_第2页
第2页 / 共13页
数字信号处理课程设计报告.docx_第3页
第3页 / 共13页
数字信号处理课程设计报告.docx_第4页
第4页 / 共13页
数字信号处理课程设计报告.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

数字信号处理课程设计报告.docx

《数字信号处理课程设计报告.docx》由会员分享,可在线阅读,更多相关《数字信号处理课程设计报告.docx(13页珍藏版)》请在冰豆网上搜索。

数字信号处理课程设计报告.docx

数字信号处理课程设计报告

 

班级:

学号:

姓名:

 

设计一正余弦信号的谱分析

【一】设计要求

1.对一个频率为10Hz的连续余弦信号,以采样频率为64Hz得到离散余弦序列,对此余弦序列进行32点进行谱分析,画出其频谱图;若将信号频率改为11Hz,其他参数不变,重新画出该序列的频谱图,观察频谱泄漏现象,分析原因。

2.考察DFT的长度对双频率信号频谱分析的影响。

设待分析的信号为

(1.2)

令两个长度为16的正余弦序列的数字频率为

取N为四个不同值16,32,64,128。

画出四个DFT幅频图,分析DFT长度对频谱分辨率的影响。

3.在上题中若把两个正弦波的频率取得较近,令

,试问怎样选择FFT参数才能在频谱分析中分辨出这两个分量?

【二】设计原理

 

【三】源程序清单

1

N=input('输入谱分析的长度')

n=0:

N-1;

T=1/64;

x1=cos(20*pi*n*T);

subplot(2,2,1);

stem(n,x1);xlabel('n');ylabel('x1(n)');%绘制序列的波形

title('余弦序列');

X1=abs(fft(x1,N));%求余弦序列的N点FFT

subplot(2,2,2)

k=0:

N-1;

stem(k,X1)%绘制序列的幅频特性曲线

xlabel('k');ylabel('X(k)');

string=[num2str(N),'点FFT幅频曲线'];

title(string);

x2=cos(22*pi*n*T);

subplot(2,2,3);

stem(n,x2);xlabel('n');ylabel('x1(n)');%绘制序列的波形

title('余弦序列');

X2=abs(fft(x2,N));%求余弦序列的N点FFT

subplot(2,2,4)

k=0:

N-1;

stem(k,X2)%绘制序列的幅频特性曲线

xlabel('k');ylabel('X(k)');

string=[num2str(N),'点FFT幅频曲线'];

title(string);

2.

f1=0.22;

f2=0.34;

n=0:

16;

x=0.5*sin(2*pi*f1*n)+sin(2*pi*f2*n);

X1=abs(fft(x,16));

subplot(2,2,1),stem(n,x),xlabel('n');ylabel('x1(n)');

k=0:

15;

stem(k,X1)%绘制序列的幅频特性曲线

xlabel('k');ylabel('X(k)');

string=[num2str(16),'点FFT幅频曲线'];

title(string);

X2=abs(fft(x,32));

subplot(2,2,2),stem(n,x),xlabel('n');ylabel('x1(n)');

k=0:

31;

stem(k,X2)%绘制序列的幅频特性曲线

xlabel('k');ylabel('X(k)');

string=[num2str(32),'点FFT幅频曲线'];

title(string);

X3=abs(fft(x,64));

subplot(2,2,3),stem(n,x),xlabel('n');ylabel('x1(n)');

k=0:

63;

stem(k,X3)%绘制序列的幅频特性曲线

xlabel('k');ylabel('X(k)');

string=[num2str(64),'点FFT幅频曲线'];

title(string);

X4=abs(fft(x,128));

subplot(2,2,4),stem(n,x),xlabel('n');ylabel('x1(n)');

k=0:

127;

stem(k,X4)%绘制序列的幅频特性曲线

xlabel('k');ylabel('X(k)');

string=[num2str(128),'点FFT幅频曲线'];

title(string);

【四】设计结果

1.

 

2.

【五】结果分析

 

设计二数字滤波器的设计及实现

【一】设计要求

1调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号st,观察st的时域波形和幅频特性曲线;

2要求将st中的三路调幅信号分离,通过观察st的幅频特性曲线,分别确定可以分离st中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器)的通带截止频率和阻带截止频率,要求滤波器的通带最大衰减为0.1dB,阻带最小衰减为60dB;

3编程调用MATLAB滤波器设计函数分别设计这三个数字滤波器,并绘图显示其幅频特性曲线;

4调用滤波函数filter,用所设计的三个滤波器分别对复合信号st进行滤波,分离出st中的三路不同载波频率的调幅信号,并绘图显示滤波后信号的时域波形和频谱,观察分离效果。

【二】设计原理

 

【三】源程序清单

%产生信号序列st,并显示st的时域波形和频谱

%st=mstg返回三路调幅信号相加形成的混合信号,长度N=800

N=800;%信号长度N为800

Fs=10000;T=1/Fs;Tp=N*T;%采样频率Fs=10kHz,Tp为采样时间

t=0:

T:

(N-1)*T;k=0:

N-1;f=k/Tp;

fc1=Fs/10;%第1路调幅信号载波频率fc1=1000Hz

fm1=fc1/10;%第1路调幅信号的调制信号频率fm1=100Hz

fc2=Fs/20;%第2路调幅信号载波频率fc2=500Hz

fm2=fc2/10;%第2路调幅信号的调制信号频率fm2=50Hz

fc3=Fs/40;%第3路调幅信号载波频率fc3=250Hz

fm3=fc3/10;%第3路调幅信号的调制信号频率fm3=25Hz

xt1=cos(2*pi*fm1*t).*cos(2*pi*fc1*t);%产生第1路调幅信号

xt2=cos(2*pi*fm2*t).*cos(2*pi*fc2*t);%产生第2路调幅信号

xt3=cos(2*pi*fm3*t).*cos(2*pi*fc3*t);%产生第3路调幅信号

st=xt1+xt2+xt3;%三路信号相加,得到复合信号

fxt=fft(st,N);%计算信号st的频谱

%以下为绘图命令

figure

(1)

subplot(4,2,1);

plot(t,st);grid;xlabel('t/s');ylabel('s(t)');

axis([0,Tp,min(st),max(st)]);title('(a)s(t)的波形')

figure

(1)

subplot(4,2,2);

stem(f,abs(fxt)/max(abs(fxt)),'.');grid;title('(b)s(t)的频谱')

axis([0,Fs/8,0,1.2]);

xlabel('f/Hz');ylabel('幅度');

%低通滤波器

fp=300;fs=320;

wp=2*fp/Fs;ws=2*fs/Fs;rp=0.1;rs=60;%DF指标(低通滤波器的通、阻带边界频)

[N,wp]=ellipord(wp,ws,rp,rs);%调用ellipord计算椭圆DF阶数N和通带截止频率wp

[B,A]=ellip(N,rp,rs,wp);%调用ellip计算椭圆带通DF系统函数系数向量B和A

y1t=filter(B,A,st);%滤波器软件实现

y1=fft(y1t);

%绘图部分

figure

(2)

subplot(311)

[H,W]=freqz(B,A,800);

plot(W*Fs/2/pi,abs(H));

xlabel('Hz');

ylabel('H(w)');

title('低通滤波器');

axis([0,2000,0,1.2]);

grid;

figure

(1)

subplot(4,2,3);

plot(t,y1t);

xlabel('t');

ylabel('y(t)');

title('分离出的250Hz的波形');

figure

(1)

subplot(4,2,4);

stem(f,abs(y1)/max(abs(y1)),'.');

xlabel('Hz');

ylabel('|H|');

title('250Hz的频谱');

axis([0,1200,0,1]);

grid;

%带通滤波器

fpl=400;fpu=580;fsl=300;fsu=700;

wp=[2*fpl/Fs,2*fpu/Fs];ws=[2*fsl/Fs,2*fsu/Fs];rp=0.1;rs=60;

[N,wp]=ellipord(wp,ws,rp,rs);%调用ellipord计算椭圆DF阶数N和通带截止频率wp

[B,A]=ellip(N,rp,rs,wp);%调用ellip计算椭圆带通DF系统函数系数向量B和A

y2t=filter(B,A,st);%滤波器软件实现

y2=fft(y2t);

%绘图部分

figure

(2)

subplot(312)

[H,W]=freqz(B,A,800);

plot(W*Fs/2/pi,abs(H));

xlabel('Hz');

ylabel('H(w)');

title('带通滤波器');

axis([0,2000,0,1.2]);

grid;

figure

(1)

subplot(4,2,5);

plot(t,y2t);

xlabel('t');

ylabel('y(t)');

title('分离出的500Hz的波形');

figure

(1)

subplot(4,2,6);

stem(f,abs(y2)/max(abs(y2)),'.');

xlabel('Hz');

ylabel('|H|');

title('频谱');

axis([0,1200,0,1]);

grid;

%高通滤波器

fp=800;fs=780;

wp=2*fp/Fs;ws=2*fs/Fs;rp=0.1;rs=60;%DF指标(低通滤波器的通、阻带边界频)

[N,wp]=ellipord(wp,ws,rp,rs);%调用ellipord计算椭圆DF阶数N和通带截止频率wp

[B,A]=ellip(N,rp,rs,wp,'high');%调用ellip计算椭圆带通DF系统函数系数向量B和A

y3t=filter(B,A,st);%滤波器软件实现

y3=fft(y3t);

%绘图部分

figure

(2)

subplot(313)

[H,W]=freqz(B,A,800);

plot(W*Fs/2/pi,abs(H));

xlabel('Hz');

ylabel('H(w)');

title('高通滤波器');

axis([0,2000,0,1.2]);

grid;

figure

(1)

subplot(4,2,7);

plot(t,y3t);

xlabel('t');

ylabel('y(t)');

title('分离出的1000Hz的波形');

figure

(1)

subplot(4,2,8);

stem(f,abs(y3)/max(abs(y3)),'.');

xlabel('Hz');

ylabel('|H|');

title('频谱');

axis([0,1200,0,1]);grid;

【四】设计结果

设计三语音信号滤波处理

【一】设计要求

1利用Windows下的录音机录制一段自己的话音,时间在1s内。

然后在Matlab软件平台下,利用wavread函数对语音信号进行采样,记住采样频率和采样点数;

2画出语音信号的时域波形,对采样后的语音信号进行快速傅立叶变换,得到信号的频谱特性,画出采样信号的时域波形和频谱图;

3根据对语音信号谱分析的结果,确定滤除噪声所需滤波器的技术指标,设计合适的数字滤波器,并画出滤波器的频域响应;

4用所设计的滤波器对采集的信号进行滤波,在同一个窗口画出滤波前后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;

5回放语音信号;sound(x)

6为使编制的程序操作方便,设计一个信号处理用户界面。

在所设计的系统界面上可以选择滤波器的类型,输入滤波器的参数,显示滤波器的频率响应,选择信号等。

【二】设计原理

 

【三】源程序清单

Fs=20000;%采样频率

[x,Fs]=wavread('m1.wav');

figure

(1)

subplot(2,2,1)

plot(x,'r');%做原始语音信号的时域图形

title('原语音信号');gridon;

%sound(x,Fs);

subplot(2,2,2)

plot(abs(fft(x)));%画出原始语音信号的频谱图

title('原语音信号的频谱');gridon;

y=rand(size(x))/5;

y=x+y;

subplot(2,2,3);

plot(y);%做噪声语音信号的时域图形

title('加噪后语音信号');

xlabel('时间n');ylabel('音量n');

%sound(y,Fs);

subplot(2,2,4);

y5=fft(y,length(y));%做length(y)点的FFT

plot(abs(y5));%画出噪声语音信号的频谱图

title('加噪后语音信号的频谱');gridon;

fs=20000;

fc2=5000;

wc2=2*pi*fc2/fs;

wp2=2*pi*4800/fs;ws2=2*pi*5000/fs;

N2=ceil(6.6*pi/(ws2-wp2))+1;%确定窗的长度

Window=(hamming(N2));

b2=fir1(N2-1,1/pi,0,Window);%利用窗函数法设计FIR滤波器

[H,W]=freqz(b2,1,512);%数字滤波器频率响应

H_db=20*log10(abs(H));

figure

(2);

subplot(3,1,1)

plot(W,H_db);

title('低通滤波器');gridon;

y_high=filter(b2,1,y);%对信号进行高通滤波

subplot(3,1,2)

plot(y_high);title('信号经过低通滤波器(时域)');

subplot(3,1,3)

plot(abs(fft(y_high)));

title('信号经过低通滤波器(频域)');gridon;

sound(y_high,Fs);

【四】设计结果

【五】结果分析

 

【六】收获、体会和建议

 

【七】参考资料

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1