电信专业《数字信号处理课程设计》任务书

电信专业《数字信号处理课程设计》任务书

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(一)
clc;clear;
Y_vect=[1 -0.5 0.25];     %num
X_vect=[1 2 0 1];         %den
figure(1)                   
zplane(Y_vect, X_vect);   %zplane()函数画出零点极点图
figure(2)                   
impz(Y_vect, X_vect);      %impz()函数得出系统的脉冲响应
legend('h(n)')
n=0:100;
Input=5+3*cos(0.2*pi*n)+4*sin(0.6*pi*n);     %输入
Output=filter(Y_vect, X_vect,Input);          %输出
figure(3)                   %x(n)
subplot(2,1,1);
stem(Input,'filled');
legend('x(n)')
subplot(2,1,2);
stem(Output,'filled');
legend('y(n)')
(二)
(1)
clear all;clc;
n=(0:1:9);
y=cos(0.48*pi*n)+cos(0.52*pi*n);
n1=(0:1:9);x=y(1:1:10);
subplot(3,1,1);
stem(n1,x);     %画出x(n)曲线
title('x(n)(o<=n<=9)');
xlabel('n');ylabel('x(n)');
axis([0,10,-2.5,2.5]);      
w=[0:500]*2*pi/500;
xw=x*exp(-j*n'*w);
magx=abs(xw);     %对xw取绝对值
subplot(3,1,2);
plot(w,magx);     %画出x(jw)曲线
title('DTFT');
xlabel('w');ylabel('x(jw)');
axis([0,2*pi,0,10]);     
subplot(3,1,3);
x1=fft(x);     %对x进行傅里叶变换
magx1=abs(x1);     %对x1取绝对值
stem(n1,abs(magx1));     %画出x(k)曲线
title('DFT');
xlabel('k');ylabel('x(k)');
axis([0,10,0,10]);     
(2)
clear all;clc;
n=(0:1:9);
y=cos(0.48*pi*n)+cos(0.52*pi*n);n1=(0:1:99);
x=[y(1:1:10),zeros(1,90)];     %第10位到100位的数据都为0
subplot(3,1,1);
stem(n1,x);     %画出x(n)曲线
title('x(n)(O<=n<=9+90zeros)');
xlabel('n');ylabel('x(n)');
axis([0,100,-2.5,2.5]);     
w=linspace(0,2*pi,length(x));     %0-2*pi区域分为100点
xw=x*exp(-j*[1:length(x)]'*w);
magx=abs(xw);     %对xw取绝对值
subplot(3,1,2);
plot(w, magx);     %画出x(jw)曲线
title('DTFT');
xlabel('w');ylabel('x(jw)');
axis([0,2*pi, 0,10]);     
subplot(3,1,3);
x1=fft(x);     %进行傅里叶变换
magx1=abs(x1);     %对x1取绝对值
stem(n1,abs(magx1));     %画出x(k)曲线
title('DFT');
xlabel('k');ylabel('x(k)');
axis([0,100,0,10]);    
(3)
clear all;clc;
n=(0:1:99);
y=cos(0.48*pi*n)+cos(0.52*pi*n);n1=(0:1:99);x=y(1:1:100);
subplot(3,1,1);
stem(n1,x);     %画出x(n)曲线
title('x(n)(O<=n<=99)');
xlabel('n');ylabel('x(n)');
axis([0,100,-2.5,2.5]);     
w=linspace(0,2+pi,length(x));     %0-2*pi区域分为100点
xw=x*exp(-j*[1:length(x)]'*w);
magx=abs(xw);     %对xw取绝对值
subplot(3,1,2);
plot(w,magx);     %画出x(jw)曲线
title('DTFT');
xlabel('w');ylabel('x(jw)');
axis([0,2*pi,0,54]);     
subplot(3,1,3);
x1=fft(x);     %进行傅里叶变换
magx1=abs(x1);     %对x1取绝对值
stem(n1,abs(magx1));     %画出x(k)曲线
title('DFT');
xlabel('k');ylabel('x(k)');
axis([0,100,0,54]);  
(4)
clear all;clc;
n=(0:1:127);
y=cos(0.48*pi*n)+cos(0.52*pi*n);n1=(0:1:127);x=y(1:1:128) ;
subplot(3,1,1);
stem(n1,x);     %画出x(n)曲线
title('x(n)(O<=n<=127)');
xlabel('n');ylabel('x(n)') ;
axis([0,128,-2.5,2.5]);    
w=linspace(0,2*pi,length(x));     %0-2*pi区域分为128点
xw=x*exp(-j*[1:length(x)]'*w);
magx=abs(xw);     %对xw取绝对值
subplot(3,1,2);
plot(w,magx);     %画出x(jw)曲线
title( 'DTFT');
xlabel('w');ylabel('x(jw)');
axis([0,2*pi,0,65]);    
subplot(3,1,3);
x1=fft(x);     %进行傅里叶变换
magx1=abs(x1);     %对x1取绝对值
stem(n1,abs(magx1));     %画出x(k)曲线
title('DFT');
xlabel('k');ylabel('x(k)');
axis([0,128,0,65]);    
(5)
clear all;clc;
n=(0:1:49);
y=cos(0.48*pi*n)+cos(0.52*pi*n);n1=(0:1:49);x=y(1:1:50);
subplot(3,1,1);stem(n1,x);     %画出x(n)曲线
title('x(n)(O<=n<=49)'); 
xlabel('n');ylabel('x(n)');
axis([0,50,-2.5,2.5]);     
w=linspace(0,2+pi,length(x));     %0-2*pi区域分为50点
xw=x*exp(-j*[1:length(x)]'*w);
magx=abs(xw);     %对xw取绝对值
subplot(3,1,2);plot(w,magx);     %画出x(jw)曲线
title('DTFT');
xlabel('w');ylabel('x(jw)');
axis([0,2*pi,0,30]);    
subplot(3,1,3);
x1=fft(x);     %进行傅里叶变换
magx1=abs(x1);     %对x1取绝对值
stem(n1,abs(magx1));     %画出x(k)曲线
title('DFT');
xlabel('k');ylabel('x(k)');
axis([0,50,0,30]);     
(三)
(1)导入
[x1,fs]=audioread('D:\PPT\数字信号处理\课设\语音.m4a');
sound(x1,fs);    %声音回放
y1=fft(x1,32768);   %对信号取1024个点的fft变换
figure(1)
subplot(2,1,1)
plot(x1) 
title('原始音频时域图')
subplot(2,1,2)
plot(abs(y1))   %幅度
title('原始音频频谱图')
(2)噪声
[x1,fs]=audioread('D:\PPT\数字信号处理\课设\语音.m4a');
y1=fft(x1,32768);
x2=awgn(x1,10);   %将高斯白噪声(信噪比为10dB)添加到信号中
%sound(x2,fs)
y2=fft(x2,32768);   %对加噪声后的信号取1024个点的fft变换
f=0:fs/32768:fs/32768*32767;
figure(2)
subplot(3,2,1)
plot(x2)
xlabel('频率(Hz)');
ylabel('幅度(dB)');
title('加高斯白噪声的音频时域图')
subplot(3,2,2)
plot(f,abs(y1));   %幅值
xlabel('频率(Hz)');
ylabel('幅度(dB)');
title('加高斯白噪声的音频频谱图')
N=length(x1)-1;
t=0:1/fs:N/fs;
d=[0.09*sin(2*pi*5000*t)]';   %将单频噪声添加到信号中
x3=x1+d;
%sound(x3,fs);
f=0:fs/32768:fs/32768*32767;
subplot(3,2,3)
plot(x3)
xlabel('频率(Hz)');
ylabel('幅度(dB)');
title('加单频噪声的音频时域图')
y3=fft(x3,32768);   %对加噪声后的信号取1024个点的fft变换
subplot(3,2,4)
plot(f,abs(y3));   %幅值
xlabel('频率(Hz)');
ylabel('幅度(dB)');
title('加单频噪声的音频频谱图')
N=length(x1)-1;t=0:1/fs:N/fs;
a=[0.09*sin(2*pi*2000*t)]';
b=[0.09*sin(2*pi*3000*t)]';
c=[0.09*sin(2*pi*3500*t)]';
x4=x1+a+b+c;   %将多频噪声添加到信号中
%sound(x4,fs)
y4=fft(x4,32768);     %对加噪音后的信号取1024个点的fft变换
subplot(3,2,5);
plot(x4)
xlabel('频率(Hz)');
ylabel('幅度(dB)');
title('加多频噪声的音频时域图')
ylabel('幅值');
subplot(3,2,6);
plot(f,abs(y4));   %幅值
xlabel('频率(Hz)');
ylabel('幅度(dB)');
title('加多频噪声的音频频谱图')
(3)低通
fp=1000;Fs=1800;As=40;Ap=0.25;
%As=40;Ap=0.25;Fs=20000
wp=2*pi*fp/fs;ws=2*pi*Fs/fs;
%wp=2*pi*[1500,3500]/Fs;ws=2*pi*[1800,3800]/Fs;
Bt=ws-wp;   %计算过渡带宽度
alph=0.5842*(As-21)^0.4+0.07886*(As-21);   %根据公式计算Kaiser窗的控制参数
%alph=0.112*(As-8.7);
%alph=O;
M=ceil((As-8)/2.285/Bt);   %根据公式计算Kaiser窗所需阶数M
wc=(wp+ws)/2/pi;   %计算理想带通滤波器通带截至频率
hn=fir1(M,wc,kaiser(M+1,alph)); %调用firl计算高通FIRDF的h(n)
hk=fft(hn);
hk=freqz(hn,1,Fs);   %滤波器频率响应
xn3=fftfilt(hn,x4);   %重叠相加滤波器实现
sound(xn3,fs);   %声音回放
yn3=fft(xn3);
figure(3);
subplot(2,1,1);
plot(xn3);
title('多正弦干扰滤波后信号波形');
subplot(2,1,2);
plot(abs(yn3));   %幅值
title('多正弦干扰滤波后信号频谱');
figure(4);
subplot(2,1,1);
stem(hn);   %以空心的方式画出茎秆
title('凯塞窗h(n)波形');
subplot(2,1,2);
plot(abs(hk));   %幅值
title('凯塞窗h(n)信号频谱');
(4)带通
fp=1400;Fs=1800;As=40;Ap=0.25;
%As=40;Ap=0.25;Fs=20000
wp=2*pi*fp/fs;ws=2*pi*Fs/fs;
%wp=2*pi*[1500,3500]/Fs;ws=2*pi*[1800,3800]/Fs;
Bt=ws-wp;   %计算过渡带宽度
alph=0.5842*(As-21)^0.4+0.07886*(As-21);   %根据公式计算Kaiser窗的控制参数
%alph=0.112*(As-8.7);
%alph=0;
M=ceil((As-8)/2.285/Bt);   %根据公式计算Kaiser窗所需阶数M
wc=(wp+ws)/2/pi;   %计算理想带通滤波器通带截至频率
ww=[wp,ws];
hn=firl(M,ww,kaiser(M+1,alph)); %调用firl计算高通FIRDF的h(n)
hk=fft(hn);
hk=freqz(hn,1,Fs);   %滤波器频率响应
xn3=fftfilt(hn,x4);   %重叠相加滤波器实现
sound(xn3,fs);   %声音回放
yn3=fft(xn3);
figure(3);
subplot(2,1,1);
plot(xn3);
title('多正弦干扰滤波后信号波形');
subplot(2,1,2);
plot(abs(yn3));   %幅值
title('多正弦干扰滤波后信号频谱');
figure(4);
subplot(2,1,1);
stem(hn);   %以空心的方式画出茎秆
title('凯塞窗h(n)波形');
subplot(2,1,2);
plot(abs(hk));   %幅值
title('凯塞窗h(n)信号频谱');
(5)高通
fp=2800;Fs=3500;As=40;Ap=0.25;
%As=40;Ap=0.25;Fs=20000
wp=2*pi*fp/fs ;ws=2*pi*Fs/fs;
%wp=2*pi*[1500,3500]/Fs ;ws=2*pi*[1800,3800]/Fs;
Bt=ws-wp;   %计算过渡带宽度
alph=0.5842*(As-21)^0.4+0.07886*(As-21);   %根据公式计算Kaiser窗的控制参数
%alph=0.112*(As-8.7);
%alph=0;
M=ceil((As-8)/2.285/Bt);   %根据公式计算Kaiser窗所需阶数M
ww=[wp,ws];
hn=fir1(M,ww,kaiser(M+1,alph));   %调用firl计算高通FIRDF的h(n)
hk=fft(hn);
hk=freqz(hn,1,Fs);   %滤波器频率响应
xn3=fftfilt(hn,x4);   %重叠相加滤波器实现
sound(xn3,fs);   %声音回放
yn3=fft(xn3);
figure(3);
subplot(2,1,1);
plot(xn3);
title('多正弦干扰滤波后信号波形');
subplot(2,1,2);
plot(abs(yn3));   %幅值
title('多正弦干扰滤波后信号频谱');
figure(4);
subplot(2,1,1);
stem(hn);   %以空心的方式画出茎秆
title('凯塞窗h(n)波形');
subplot(2,1,2);
plot(abs(hk));   %赋值
title('凯塞窗h(n)信号频谱');

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 6
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值