《数字信号处理》课程设计报告
班级电信0803班学号**********姓名 XX 成绩
设计一 正余弦信号的谱分析
【一】 设计目的
1. 用DFT实现对正余弦信号的谱分析;
2. 观察DFT长度和窗函数长度对频谱的影响;
3. 对DFT进行谱分析中的误差现象获得感性认识。
【二】 设计原理
如果连续时间信号是频带有限的,那么对其离散时间等效信号的DFT进行谱分析。实际上序列多是无限长序列,可以使它首先变成一个长为M的有限长序列,,对求出的DTFT ,然后求出在区间等分为N点的离散傅立叶变换DFT。为保证足够的分辨率,DFT的长度N选的比窗长度M大,其方法是在截断了的序列后面补上N-M个零。计算采用FFT算法。
【三】 设计内容
1.
%设计一 正余弦信号的谱分析 1
clear all;close all;clc;
N=32;n=0:N-1;Fs=64;T=1/Fs;
x1=cos(10*2*pi*n*T); %定义10Hz序列x1
x2=cos(11*2*pi*n*T); %定义11Hz序列x2
k=0:N-1;
X1=abs(fft(x1,N)); %求余弦序列x1的32点FFT
X2=abs(fft(x2,N)); %求余弦序列x2的32点FFT
%绘图程序
subplot(2,2,1);stem(n,x1); %绘制10Hz序列x1的波形
xlabel('n');ylabel('x1(n)'); title('余弦序列(f=10Hz)');
subplot(2,2,2);stem(n,x2); %绘制11Hz序列x2的波形
xlabel('n');ylabel('x2(n)'); title('余弦序列(f=11Hz)');
subplot(2,2,3);stem(k,X1); %绘制序列x1的幅频特性曲线
xlabel('k');ylabel('X1(k)'); title('32点FFT幅频曲线(f=10Hz)');
subplot(2,2,4);stem(k,X2); %绘制序列x2的幅频特性曲线
xlabel('k');ylabel('X2(k)');title('32点FFT幅频曲线(f=11Hz)');
%运行结果如下
图1.1 设计内容1的运行结果
2.
%设计一 正余弦信号的谱分析 2
clear all;close all;clc;
n=0:15; N1=16;N2=32;N3=64;N4=128;f1=0.22;f2=0.34;
x=0.5*sin(2*pi*f1*n)+sin(2*pi*f2*n); %待分析信号
%谱分析
X1=abs(fft(x,N1));
X2=abs(fft(x,N2));
X3=abs(fft(x,N3));
X4=abs(fft(x,N4));
%绘图程序(略)
%运行结果如下
图1.2 设计内容2的运行结果
3.
%设计一 正余弦信号的谱分析 3
clear all;close all;clc;
n=0:15;N1=16;N2=32;N3=64;N4=128;f1=0.22;f2=0.25;
x=0.5*sin(2*pi*f1*n)+sin(2*pi*f2*n); %待分析信号
%谱分析
X1=abs(fft(x,N1));
X2=abs(fft(x,N2));
X3=abs(fft(x,N3));
X4=abs(fft(x,N4));
%绘图程序(略)
%运行结果如下
图1.3 设计内容3的运行结果
【四】结果分析与体会
设计二 数字滤波器的设计及实现
【一】设计目的
1. 熟悉IIR数字滤波器和FIR数字滤波器的设计原理和方法;
2. 学会调用MATLAB信号处理工具箱中的滤波器设计函数设计各种IIR和FIR数字滤波器,学会根据滤波要求确定滤波器指标参数;
3. 掌握用IIR和FIR数字滤波器的MATLAB实现方法,并能绘制滤波器的幅频特性、相频特性;
4. 通过观察滤波器的输入、输出信号的时域波形及其频谱,建立数字滤波的概念。
【二】设计原理
所谓抑制载波单频调制信号,就是两个正弦信号相乘,它有2个频率成分:和频+,差频-,这两个频率成分关于载波频率对称。所以,1路抑制载波单频调幅信号的频谱图是关于载波频率对称的两根谱线。显然,当调制频率和(或)载波频率不同时,可以得到包含不同频率成分的单频调幅信号。
【三】设计内容
1.
%设计二 数字滤波器的设计及实现 1
%程序同实验指导书上的程序
%运行结果如下
图2.1 设计内容1的运行结果
%设计二 数字滤波器的设计及实现 2
%2_2_1 低通 巴特沃斯
clear;clc
Fs=10000; %采样频率
fp=280; %通带截止频率
fs=525; %阻带截止频率
rp=0.1; %通带最大衰减
rs=60; %阻带最小衰减
wp=2*fp/Fs;ws=2*fs/Fs; %计算数字滤波器的设计指标
[N,wc]=buttord(wp,ws,rp,rs); %计算数字滤波器的阶数和通带截止频率
[b,a]=butter(N,wc); %计算数字滤波器系统函数
w=0:0.01*pi:pi;
[h,w]=freqz(b,a,w); %计算数字滤波器的幅频响应
h=20*log10(abs(h)); %求频率的幅度值
%绘图程序
subplot(3,1,1);plot(w/pi,h);grid;axis([0,1,-700,40]);
xlabel('\omega/\pi');ylabel('幅度/dB');title('巴特沃斯低通滤波器的幅频特性曲线');
%2_2_2 带通 切比雪夫II
clear;clc
Fs=10000; fp1=400;fp2=600;fs1=300;fs2=750; rp=0.1;rs=60;
wp=[2*fp1/Fs,2*fp2/Fs];ws=[2*fs1/Fs,2*fs2/Fs]; %计算数字滤波器的设计指标
[N,wso]=cheb2ord(wp,ws,rp,rs); %计算数字滤波器的阶数和阻带截止频率
[b,a]=cheby2(N,rs,wso); %计算数字滤波器的系统函数
w=0:0.01*pi:pi;
[h,w]=freqz(b,a,w); %计算数字滤波器的幅频响应
h=20*log10(abs(h));
%绘图程序(略)
%2_2_3 高通 切比雪夫I
clear;clc
Fs=10000;fp=800;fs=600; rp=0.1;rs=60;wp=2*fp/Fs;ws=2*fs/Fs;
[N,wpo]=cheb1ord(wp,ws,rp,rs); %计算数字滤波器的阶数和通带截止频率
[b,a]=cheby1(N,rp,wpo,'high'); %计算数字滤波器系统函数
w=0:0.01*pi:pi;
[h,w]=freqz(b,a,w); %计算数字滤波器的幅频响应
%绘图程序(略)
%运行结果如下
图2.2 设计内容2的运行结果
%设计二 数字滤波器的设计及实现 1 巴特沃斯低通
clear all;close all;clc;
%产生调幅信号(同内容1,这里省略)
%巴特沃斯低通滤波器(同内容2,这里省略)
%用巴特沃斯低通滤波器滤波
y=filter(b,a,st); %滤波
Ny=length(y); %求信号长度
fyt=fft(y,Ny); %对滤波后的信号进行DFT变换
%绘图程序(略)
%带通和高通的程序基本相同,这里不再赘述
%运行结果如下
图2.3.1 设计内容3中低通的运行结果
图2.3.2 设计内容3中带通的运行结果
图2.3.3 设计内容3中高通的运行结果
【四】结果分析与体会
设计三 语音信号滤波处理
【一】设计目的
1. 了解语音信号的产生、采集,能绘制语音信号的频率响应曲线及频谱图;
2. 学会用MATLAB对语音信号进行分析和处理;
3. 掌握用滤波器去除语音信号噪声的方法,观察去噪前后的语音信号。
【二】设计原理
在MATLAB软件平台下,利用函数wavread( )对语音信号采集,并记录采样频率和采样点数。将语音信号转换成计算机能够运算的有限长序列。用FFT对其作谱分析。对信号添加噪声,然后通过窗函数法设计滤波器滤掉该语音信号的噪声,对比滤波前后的语音波形和频谱。
【三】设计内容
1.
%设计三 语音信号滤波处理 1
[y,Fs,bit]=wavread ('aa.wav'); %读入语音信号
%其中向量y为采样值,Fs为采样频率(Hz),bit为采样点数
sound(y,Fs,bit); %回放语音信号
%运行结果如下
图3.1 设计内容1的运行结果
2.
%设计三 语音信号滤波处理 2
clear all;close all;clc;
[y,Fs,bit]=wavread ('aa.wav'); %读入语音信号
%其中向量y为采样值,Fs为采样频率(Hz),bit为采样点数
sound(y,Fs,bit); %回放语音信号
n=length(y); %求出语音信号的长度
Y=fft(y,n); %对采样得到的语音信号进行DFT变换
f=(0:length(y)-1)'*Fs/length(y);
%加高斯白噪声
g=awgn(y,20); %给语音信号加上高斯白噪声
sound(g,Fs,bit); %回放加噪信号
G=fft(g,n); %对加噪后的语音信号进行DFT变换
%加正弦噪声
T=1/Fs;t=0:T:(n-1)*T;
noise=1*sin(250*2*pi*t); %产生频率为250Hz的正弦噪声
z=y+noise'; %将语音信号与噪声叠加
Z=fft(z,n); %对加噪后的信号进行DFT变换
sound(z,Fs,bit); %回放加噪信号
%绘图程序(略)
%运行结果如下(原语音信号的时域波形和频谱图见上图)
图3.2 设计内容2的运行结果
3.
%设计三 语音信号滤波处理 1
clear all;close all;clc;
Fs=10000;
%设计切比雪夫II带通滤波器
fp1=600;fp2=800;fs1=450;fs2=1000;rp=0.05;rs=60;
wp=[2*fp1/Fs,2*fp2/Fs];ws=[2*fs1/Fs,2*fs2/Fs]; %计算数字滤波器设计指标
[N,wc]=buttord(wp,ws,rp,rs); %计算数字滤波器的阶数和通带截止频率
[b,a]=butter(N,wc); %计算数字滤波器系统函数
w=0:0.01*pi:pi;
[h,w]=freqz(b,a,w); %计算幅频响应
h=20*log10(abs(h));
%绘图程序(略)
%设计巴特沃斯高通滤波器
fp=600;fs=400;rp=0.1;rs=50;
wp=2*fp/Fs;ws=2*fs/Fs;
[N,wc]=buttord(wp,ws,rp,rs); %计算数字滤波器的阶数和通带截止频率
[b,a]=butter(N,wc,'high'); %计算数字滤波器系统函数
w=0:0.01*pi:pi;
[h,w]=freqz(b,a,w); %计算幅频响应
h=20*log10(abs(h));
%绘图程序(略)
%运行结果如下
图3.3 设计内容3的运行结果
4.
%设计三 语音信号滤波处理 4
%其中原语音信号的程序同内容1,加噪声程序同内容2,滤波器程序同内容3,这里省略。
%用切比雪夫II带通滤波器滤除高斯白噪声
gl=filter(b,a,g); %对加噪后的语音信号进行滤波
sound(gl,Fs,bit); %回放滤波后的信号
Ngl=length(gl); %计算加噪后语音信号长度
Gl=fft(gl,Ngl); %对加噪后语音信号进行DFT变换
%用巴特沃斯高通滤波器滤除正弦噪声
zl=filter(b,a,z); %滤波
Nzl=length(zl); %计算信号的长度
Zl=fft(zl,Nzl); %对滤除噪声后的信号进行DFT变换
sound(zl,Fs,bit); %回放滤波后的信号
%绘图程序(略)
%运行结果如下
图3.4.1 设计内容4的运行结果一
图3.4.2设计内容4的运行结果二
【四】结果分析与体会
设计四 调制解调系统的设计及实现
【一】设计目的
1. 通过该设计,掌握调制解调系统的原理及编程实现的方法。
2. 在掌握相关知识的基础上,学会自己设计实验,分析验证不同振幅调制方式的优缺点,提高进行信号分析和处理的能力。
【二】设计原理
两个信号在时域的乘法运算通常用来实现信号的调制,即由一个信号去控制另一个信号的某一个参量。信号的调制在通信领域应用非常广泛,常用的振幅调制方式有:常规双边带调幅(AM),抑制载波双边带调幅(DSB),单边带调幅(SSB)和残留边带调制(VSB)。
振幅解调是振幅调制的逆过程,通常称为检波。它的作用是从已调制的高频振荡中恢复出原来的调制信号。检波过程与调制过程正好相反。从频谱来看,检波就是将已调信号的频谱由高频搬移到低频,然后通过滤波器,滤除无用频率分量,取出所需要的原调制信号。
【三】设计内容
1.
%设计四 调制解调系统的设计及实现 1
clear all;close all;clc;
Fm=10;Fc=100;Fs=1000;N=1000;k=0:N-1;t=k/Fs;
x=sin(2.0*pi*Fm*t);xf=abs(fft(x,N)); %原信号
s=sin(2.0*pi*Fc*t);sf=abs(fft(s,N)); %载波信号
y=x.*s;yf=abs(fft(y,N));z=y.*s;zf=abs(fft(z,N));
%巴特沃斯低通滤波器(同前面所设计滤波器,这里只写出参数)
fp=20;fs=100;rp=0.1;rs=60;
%用巴特沃斯低通滤波器滤波
zl=filter(b,a,z); %滤波
Nz=length(zl); %求信号长度
zlf=fft(zl,Nz); %对滤波后的信号进行DFT变换
%绘图程序(略)
%运行结果如下
图4.1 设计内容1的运行结果
2.
%设计四 调制解调系统的设计及实现 2
clear all;close all;clc;
Fs=1000;Fc=50;A0=0;ma=0.8;N=500;k=0:N-1;t=k/Fs;
t0=0.5;
%定义信号x(t)
x=t.*(t>0&t<t0/4)+(-t+t0/4).*(t>t0/4&t<3.*t0/4)+(t-t0).*(t>3.*t0/4&t<t0);
X=abs(fft(x,N));
%调制
y=(A0+ma*x).*cos(2*pi*Fc*t);%常规双边带调幅
Y=abs(fft(y,N))
%绘图程序(略)
%运行结果如下
图4.2 设计内容2的运行结果
3.
%设计四 调制解调系统的设计及实现 3
clear all;close all;clc;
Fs=1000;Fc=200;A0=1;N=1000;%k=0:N-1;%t=k/Fs;t=-1:0.0005:1;t0=1;
x=sinc(100*t).*(t<=t0&t>=-t0); %产生信号
X=abs(fft(x,N));
% ① 抑制载波双边带调制
yd=A0*x.*cos(2*pi*Fc*t);
Yd=abs(fft(yd,N));
%解调
zd=yd.*cos(2*pi*Fc*t);
Zd=abs(fft(zd,N));
%巴特沃斯低通滤波器
fp=40;fs=100;rp=0.1;rs=60;wp=2*fp/Fs;ws=2*fs/Fs;
[Nb,wc]=buttord(wp,ws,rp,rs); %计算数字滤波器的阶数和通带截止频率
[b,a]=butter(Nb,wc); %计算数字滤波器系统函数
%w=0:0.01*pi:pi;
%用巴特沃斯低通滤波器滤波
zdl=filter(b,a,zd); %滤波
Nzd=length(zdl); %求信号长度
Zdl=abs(fft(zdl,N)); %对滤波后的信号进行DFT变换
%绘图程序(略)
% ② 单边带调制 上边带
y2d=A0*x.*cos(2*pi*Fc*t);
Y2d=abs(fft(y2d,N));
%单边带巴特沃斯低通滤波器
fp=86;fs=125;rp=0.1;rs=60; %其他部分略
%用巴特沃斯低通滤波器滤波
y2ds=filter(b,a,y2d); %滤波
Ny2ds=length(y2ds); %求信号长度
Y2ds=abs(fft(y2ds,Ny2ds/4)); %对滤波后的信号进行DFT变换
%解调
z2ds=4*y2ds.*cos(2*pi*Fc*t);
Z2ds=abs(fft(z2ds,N));
%巴特沃斯低通滤波器
fp=40;fs=100;rp=0.1;rs=60; %其他部分略
%用巴特沃斯低通滤波器滤波
z2dsl=filter(b,a,z2ds); %滤波
Nz2ds=length(z2dsl); %求信号长度
Z2dsl=abs(fft(z2dsl,Nz2ds/4)); %对滤波后的信号进行DFT变换
%绘图程序(略)
% ③ 单边带调制 下边带
y2d=A0*x.*cos(2*pi*Fc*t);
Y2d=abs(fft(y2d,N));
%单边带巴特沃斯高通滤波器
fp=120;fs=81;rp=0.1;rs=60; %其他部分略
%用巴特沃斯低通滤波器滤波
y2ds=filter(b,a,y2d); %滤波
Ny2ds=length(y2ds); %求信号长度
Y2ds=abs(fft(y2ds,Ny2ds/4)); %对滤波后的信号进行DFT变换
%解调
z2ds=4*y2ds.*cos(2*pi*Fc*t);
Z2ds=abs(fft(z2ds,N));
%巴特沃斯低通滤波器
fp=40;fs=100;rp=0.1;rs=60; %其他部分略
%用巴特沃斯低通滤波器滤波
z2dsl=filter(b,a,z2ds); %滤波
Nz2ds=length(z2dsl); %求信号长度
Z2dsl=abs(fft(z2dsl,Nz2ds/4)); %对滤波后的信号进行DFT变换
%绘图程序(略)
%运行结果如下
图4.3.1 设计内容3的运行结果(DSB-SD)
图4.3.2 设计内容3的运行结果(SSB上边带)
图4.3.3 设计内容3的运行结果(SSB下边带)
【四】结果分析与体会