频域分析研究性学习报告.docx
- 文档编号:27971787
- 上传时间:2023-07-07
- 格式:DOCX
- 页数:23
- 大小:175.58KB
频域分析研究性学习报告.docx
《频域分析研究性学习报告.docx》由会员分享,可在线阅读,更多相关《频域分析研究性学习报告.docx(23页珍藏版)》请在冰豆网上搜索。
频域分析研究性学习报告
《信号与系统》课程研究性学习报告
指导教师薛健
时间2013.12
信号与系统的频域分析专题研讨
【目的】
(1)加深对信号与系统频域分析基本原理和方法的理解。
(2)学会利用信号抽样的基本原理对信号抽样过程中出现的一些现象的进行分析。
(3)通过实验初步了解频谱近似计算过程中产生误差的原因。
(4)学会用调制解调的基本原理对系统进行频域分析。
【研讨题目】
1.信号的抽样
频率为f0Hz的正弦信号可表示为
按抽样频率=fsam=1/T对x(t)抽样可得离散正弦序列x[k]
在下面的实验中,取抽样频率fsam=8kHz。
(1)对频率为2kHz,2.2kHz,2.4kHz和2.6kHz正弦信号抽样1秒钟,利用MATLAB函数sound(x,fsam)播放这四个不同频率的正弦信号。
(2)对频率为5.4kHz,5.6kHz,5.8kHz和6.0kHz正弦信号抽样1秒钟,利用MATLAB函数sound(x,fsam)播放这四个不同频率的正弦信号。
(3)比较
(1)和
(2)的实验结果,解释所出现的现象。
【题目分析】
改变函数频率,通过计算机读出声音来判别对音频的改变。
【信号抽样过程中频谱变化的规律】
图1为对频率为2kHz,2.2kHz,2.4kHz和2.6kHz正弦信号抽样1秒钟频谱。
图2为对频率为5.4kHz,5.6kHz,5.8kHz和6.0kHz正弦信号抽样1秒钟频谱。
【比较研究】
利用系统的Help,阅读函数sound和wavplay的使用方法。
连续播放两段音频信号,比较函数sound和wavplay的异同。
(1)调用的播放器不同,sound是用声卡模仿声音,wavplay是调用windows自带播放器。
(2)在改变频率之后,用sound播放.wav文件时不会产生新文件,而用wavplay播放时会产生新的频率下的.wav文件。
【仿真结果】
(1)对频率为2kHz,2.2kHz,2.4kHz和2.6kHz正弦信号抽样1秒钟后,信号随着频率的增大,音频升高。
(2)对频率为5.4kHz,5.6kHz,5.8kHz和6.0kHz正弦信号抽样1秒钟后,信号随着频率的增大,音频降低。
【结果的理论分析和解释】
频率都在增大,产生两个不同的现象,是因为离散时域信号的频域是以2π为周期,在抽样频率较小时,在频域上会出现频域的非零值叠加,此时随着抽样频率的增加,叠加部分减少,并且使频谱向π的奇数倍移动,高频分量增加,声音变得尖一些;而在抽样频率接近信号的频率时,由于频谱的周期性,此时频谱是会随着抽样频率的增加向π的偶数倍方向移动,高频分量减少,声音变得低沉。
当抽样频率大于等于信号最高频率的两倍时,才没有混叠现象。
也就是说,当取样频率从一个大于信号最高频率的两倍的数值逐渐降低时,得到的频谱在刚开始的一段范围内(fsam~2f)都没有混叠;而抽样频率继续降低时(fsam<2f时),开始出现混叠,并且随着抽样频率的降低,混叠越来越严重
2.连续时间信号Fourier变换的数值近似计算
计算连续信号频谱是对信号和系统进行频域分析的基础,由于实际信号大多无简单的解析表达式,所以要用数值方法进行近似计算。
本题要求对频谱近似计算中误差的原因进行初步的分析,希望能在计算实际信号频谱的近似计算中起一定的指导作用。
若信号x(t)的非零值在
区间,则可用下面提供的函数ctft1或ctft2近似计算其频谱。
函数ctft的调用形式为
[X,f]=ctft1(x,fsam,N)
[X,f]=ctft2(x,fsam,N)
其中调用变量x存放信号x(t)的抽样值,fsam表示对连续信号x(t)的抽样频率(Hz),N表示用DFT进行近似计算时DFT的点数,为了能高效的进行计算,N最好取2的整数次幂,如512,1024等。
返回变量X是计算出的信号频谱的抽样值,f(单位Hz)表示对应的频率抽样点。
返回变量X一般是复数,可用函数abs(X)计算出幅度谱,函数angle(X)计算出相位谱。
(1)阅读程序ctft2,叙述该程序的基本原理。
该程序中有一处需要产生一个大的2维矩阵,指出该行程序,并评价该方法的优缺点。
(2)取抽样频率fsam=100Hz,信号抽样长度N=1024,分别用两个子程序近似计算信号
的频谱,比较两种方法的计算时间和误差;(可用tic,toc计算程序运行时间)
(3)若将信号的时域有效宽度
定义为
其中
表示信号在时域的最大值。
试分析时域有效宽度
对近似计算的影响。
给出一个由信号时域有效宽度
估计近似计算中所需信号长度
的经验公式。
(4)定义信号频域有效宽度
为
其中
表示信号在频域的最大值。
给出一个由信号频域有效宽度
估计近似计算中所需抽样频率
的经验公式。
(5)用计算机录分别一段男生和女生的语音信号,计算其频谱并比较其特点。
(6)讨论:
计算误差产生的主要原因?
如果不知信号的解析表达式,如何分析计算误差?
%近似计算连续信号频谱的函数
function[X,f]=ctft1(x,Fs,N)
X=fftshift(fft(x,N))/Fs;
f=-Fs/2+(0:
N-1)*Fs/N;
function[X,f]=ctft2(x,Fs,N)
tk=(0:
N-1)/Fs;%时域抽样点
dF=Fs/N;%频域抽样间隔
fm=(0:
N/2)*dF;%频域抽样点
X=x*exp(-j*2*pi*tk'*fm)/Fs;%近似计算信号频谱
f=[-fliplr(fm(2:
end))fm];%增添负频率点
X=[conj(fliplr(X(2:
end)))X];%增添频率点对应的频谱
【题目分析】
由于实际信号大多无简单的解析表达式,所以要用数值方法进行近似计算。
本题要求对频谱近似计算中误差的原因进行初步的分析,希望能在计算实际信号频谱的近似计算中起一定的指导作用。
【结果分析】
分析误差产生的原因及解决问题的方法。
(1)
function[X,f]=ctft2(x,Fs,N)
tk=(0:
N-1)/Fs;%时域抽样点
dF=Fs/N;%频域抽样间隔
fm=(0:
N/2)*dF;%频域抽样点
X=x*exp(-j*2*pi*tk'*fm)/Fs;%近似计算信号频谱
f=[-fliplr(fm(2:
end))fm];%增添负频率点
X=[conj(fliplr(X(2:
end)))X];%增添频率点对应的频谱
基本原理:
定义了一个函数ctft2,参数有x,Fs,N,其中调用变量x存放信号x(t)的抽样值,fsam表示对连续信号x(t)的抽样频率(Hz),N表示用DFT进行近似计算时DFT的点数,时域抽样点tk得到一个1×N的矩阵,频域抽样点fm得到一个1×N/2的矩阵,Tk的转置乘上fm得到一个N×N/2的矩阵。
x是1×N的矩阵,得到X是一个1×N/2的矩阵。
x*exp(-j*2*pi*tk'*fm)/Fs式子近似计算信号频谱,然后利用fliplr函数实现矩阵的左右翻转,增添负频率点。
在function[X,f]=ctft2(x,Fs,N)行中产生一个大的2维矩阵。
优缺点:
缺点在于产生几个较大的矩阵,占用较多内存,运行速度较慢。
优点在于易懂,容易让人接受。
(2)ctft1:
Elapsedtimeis0.445535seconds.
ctft2:
(3)x(t)=exp(-1*t)的最大值是1,所以有效宽度根据
得为ln10。
固定N为1024。
当抽样频率f=100Hz时,取信号长度分别为0.1,0.5,1,5倍的有效长度。
【阅读文献】
【发现问题】(专题研讨或相关知识点学习中发现的问题):
【问题探究】
MATLAB中的fft后为何要用fftshift?
fft是一维傅里叶变换,即将时域信号转换为频域信号fftshift是针对频域的,将FFT的DC分量移到频谱中心即对频域的图像,(假设用一条水平线和一条垂直线将频谱图分成四块)对这四块进行对角线的交换与反对角线的交换
【仿真程序】
3.幅度调制和连续信号的Fourier变换
本题研究莫尔斯码的幅度调制与解调。
本题中信号的形式为
其中信号x(t)由文件ctftmod.mat定义(该文件在硬盘上),可用命令Loadctftmod将文件ctftmod.mat定义的变量装入系统内存。
运行命令Loadctftmod后,装入系统的变量有
afbfdashdotf1f2tx
其中
bfaf:
定义了一个连续系统H(s)的分子多项式和分母多项式。
可利用freqs(bf,af,w)求出该系统的频率响应,也可用sys=tf(bf,af)得到系统的模型,从而用lsim求出信号通过该系统的响应。
dashdot:
给出了莫尔斯码中的基本信号dash和dot的波形
f1f2:
载波频率
t:
信号x(t)的抽样点
x:
信号x(t)的在抽样点上的值
信号x(t)含有一段简单的消息。
Agend007的最后一句话是
Thefutureoftechnologyliesin···
还未说出最后一个字,Agend007就昏倒了。
你(Agend008)目前的任务就是要破解Agend007的最后一个字。
该字的信息包含在信号x(t)中。
信号x(t)具有式
(1)的形式。
式中的调制频率分别由变量f1和f2给出,信号m1(t),m2(t)和m3(t)对应于字母表中的单个字母,这个字母表已用国际莫尔斯码进行编码,如下表所示:
A·-
H····
O---
V···-
B-···
I··
P·--·
W·--
C-·-·
J·---
Q--·-
X-··-
D-··
K-·-
R·-·
Y-·--
E·
L·-··
S···
Z--··
F··-·
M--
T-
G--·
N-·
U··-
(1)字母B可用莫尔斯码表示为b=[dashdotdotdot],画出字母B莫尔斯码波形;
(2)用freqs(bf,af,w)画出由bf和af定义的系统的幅度响应;
(3)利用lsim求出信号dash通过由sys=tf(bf,af)定义的系统响应,解释你所获得的结果;
(4)用解析法推导出下列信号的Fourier变换
(5)利用(4)中的结果,设计一个从x(t)中提取信号m1(t)的方案,画出m1(t)的波形并确定其所代表的字母;
(6)对信号m2(t)和m3(t)重复(5)。
请问Agent008
Thefutureoftechnologyliesin···
【题目分析】
(1)理解题目表达的含义,每一个字母都用国际莫尔斯码进行编码,想要得到Agend007最后的一个字,就需要把最后一个字的波形画出来,已确定其所对应的字母。
(2)设计提取信号的方案,实际上就是设计一个系统,对m(t)进行调制与解调,再画出m(t)的波形。
【仿真结果】
(1)字母B莫尔斯码波形
(2)用freqs(bf,af,w)画出由bf和af定义的系统的幅度响应
(3)利用lsim求出信号dash通过由sys=tf(bf,af)定义的系统响应
(4)用解析法推导出下列信号的Fourier变换
(5)利用(4)中的结果,设计一个从x(t)中提取信号m1(t)的方案,画出m1(t)的波形并确定其所代表的字母;
结果为dash,dot,dot,表示字母D。
(6)
结果为dot,dot,dot,表示字母S。
结果为dot,dash,dash,dot,表示字母P。
则结果为:
ThefutureoftechnologyliesinDSP
附录代码:
1.信号的抽样
(1)k=0:
1:
8000;
fsam=8000;
f0=2000;
x=sin(2*pi*f0/fsam*k);
sound(x,fsam);
f0=2200;
sound(x,fsam);
f0=2400;
sound(x,fsam);
f0=2600;
sound(x,fsam);
(2)
k=0:
1:
8000;
fsam=8000;
f0=5400;
x=sin(2*pi*f0/fsam*k);
sound(x,fsam);
f0=5600;
sound(x,fsam);
f0=5800;
sound(x,fsam);
f0=6000;
sound(x,fsam);
(3)图1
f0=2000;
fsam=8000;
k=0:
1:
8000;
N=128;
n=0:
N-1;
f=n*fsam/N;
x=sin(2*pi*f0/fsam*k);
y=fft(x,N);
z=abs(y);
subplot(411);
plot(f,z);
title('图1');
f0=2200;
fsam=8000;
k=0:
1:
8000;
N=128;
n=0:
N-1;
f=n*fsam/N;
x=sin(2*pi*f0/fsam*k);
y=fft(x,N);
z=abs(y);
subplot(412);
plot(f,z);
f0=2400;
fsam=8000;
k=0:
1:
8000;
N=128;
n=0:
N-1;
f=n*fsam/N;
x=sin(2*pi*f0/fsam*k);
y=fft(x,N);
z=abs(y);
subplot(413);
plot(f,z);
f0=2600;
fsam=8000;
k=0:
1:
8000;
N=128;
n=0:
N-1;
f=n*fsam/N;
x=sin(2*pi*f0/fsam*k);
y=fft(x,N);
z=abs(y);
subplot(414);
plot(f,z);
(4)图2
f0=5400;
fsam=8000;
k=0:
1:
8000;
N=128;
n=0:
N-1;
f=n*fsam/N;
x=sin(2*pi*f0/fsam*k);
y=fft(x,N);
z=abs(y);
subplot(411);
plot(f,z);
title('图2');
f0=5600;
fsam=8000;
k=0:
1:
8000;
N=128;
n=0:
N-1;
f=n*fsam/N;
x=sin(2*pi*f0/fsam*k);
y=fft(x,N);
z=abs(y);
subplot(412);
plot(f,z);
f0=5800;
fsam=8000;
k=0:
1:
8000;
N=128;
n=0:
N-1;
f=n*fsam/N;
x=sin(2*pi*f0/fsam*k);
y=fft(x,N);
z=abs(y);
subplot(413);
plot(f,z);
f0=6000;
fsam=8000;
k=0:
1:
8000;
N=128;
n=0:
N-1;
f=n*fsam/N;
x=sin(2*pi*f0/fsam*k);
y=fft(x,N);
z=abs(y);
subplot(414);
plot(f,z);
(5)比较sound与wavplay
k=0:
1:
8000;
fsam=8000;
f0=2000;
x=sin(2*pi*f0/fsam*k);
wavplay(x,fsam);
f0=2200;
x=sin(2*pi*f0/fsam*k);
wavplay(x,fsam);
f0=2400;
x=sin(2*pi*f0/fsam*k);
wavplay(x,fsam);
f0=2600;
x=sin(2*pi*f0/fsam*k);
wavplay(x,fsam);
f0=2800;
x=sin(2*pi*f0/fsam*k);
wavplay(x,fsam);
f0=5400;
x=sin(2*pi*f0/fsam*k);
wavplay(x,fsam);
f0=5600;
x=sin(2*pi*f0/fsam*k);
wavplay(x,fsam);
f0=5800;
x=sin(2*pi*f0/fsam*k);
wavplay(x,fsam);
f0=6000;
x=sin(2*pi*f0/fsam*k);
wavplay(x,fsam);
2.连续时间信号Fourier变换的数值近似计算
(2)ctft1:
tic;
t=0:
0.01:
5;
x=exp(-1*t);
[X,f]=ctft1(x,100,1024);
subplot(211);
plot(f,abs(X));
title('abs(X)');
subplot(212);
plot(f,angle(X));
title('angle(X)');
toc;
Y=1./(1+j*f);
plot(f,abs(Y));
title('abs');
subplot(2,1,2);
plot(f,angle(Y));
title('angle(Y)');
Y=1./(1+j*f);
N=1024;
Fs=100;
x=exp((0:
N-1)/Fs);
[X,f]=ctft1(x,100,1024);
subplot(2,1,1);
plot(f,abs(Y)-abs(X));
title('errorofabs');
subplot(2,1,2);
plot(f,angle(Y)-angle(X));
title('errorofangle');
ctft2:
tic;
N=1024;
Fs=100;
x=exp((0:
N-1)/Fs);
[X,f]=ctft2(x,100,1024);
subplot(2,1,1);
plot(f,abs(X));
title('abs(X)');
subplot(2,1,2);
plot(f,angle(X));
title('angle(X)');
toc;
P=1./(1+j*f);
subplot(211);
plot(f,abs(P));
title('abs£¨P£©');
subplot(212);
plot(f,angle(P));
title('angle(P)');
P=1./(1+j*f);
N=1024;
Fs=100;
x=exp((0:
N-1)/Fs);
[X,f]=ctft2(x,100,1024);
subplot(211);
plot(f,abs(P)-abs(X));
title('errorofabs');
subplot(212);
plot(f,angle(P)-angle(X));
title('errorofangle');
3.幅度调制和连续信号的Fourier变换
(1)字母B莫尔斯码波形
loadctftmod;
k=1:
2000;
subplot(3,1,1);
plot(k,dash);
title('图3为字母B莫尔斯码波形');
k=1:
2000;
subplot(3,1,2);
plot(k,dot);
k=1:
8000;
subplot(3,1,3);
z=[dashdotdotdot];
plot(k,z);
(2)用freqs(bf,af,w)画出由bf和af定义的系统的幅度响应
loadctftmod;
w=linspace(0,100*pi,200);
freqs(bf,af,w);
(3)利用lsim求出信号dash通过由sys=tf(bf,af)定义的系统响应
loadctftmod;
sys=tf(bf,af);
t=0:
length(dot)-1;
y=lsim(sys,dot,t);
subplot(211)
plot(t,y);
subplot(212)
plot(dash);
(5)利用(4)中的结果,设计一个从x(t)中提取信号m1(t)的方案,画出m1(t)的波形并确定其所代表的字母
loadctftmod;
x1=x.*cos(2*pi*f1*t);
sys=tf(bf,af);
lsim(sys,x1,t);
title('m1(t)');
(6)对信号m2(t)和m3(t)重复(5)。
m2(t):
loadctftmod;
x2=x.*sin(2*pi*f2*t);
sys=tf(bf,af);
lsim(sys,x2,t);
title('m2(t)');
m3(t):
loadctftmod;
x3=x.*sin(2*pi*f1*t);
sys=tf(bf,af);
lsim(sys,x3,t);
title('m3(t)');
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分析 研究性学习 报告