数字信号处理课程主要研究用数字序列或符号序列表示信号,并用数字计算方法对这些序列进行处理,以便把这些信号变成符合某种需要的形式,例如对信号进行滤波处理、频谱分析、功率谱估计等。本课程重点讨论确定性数字信号的处理,在此基础上,对随机信号处理进行研究。其主要内容有:(1)离散傅里叶变换(DFT):DFT基本理论、基本方法、基本性质,利用循环卷积计算线性卷积方法。快速傅里叶变换(FFT)方法。运用FFT对信号进行谱分析,运用FFT计算线性卷积;(2)数字滤波器原理和设计方法:数字滤波器IIR和FIR类型滤波器基本网络结构,冲激不变法、双线性变换法数字滤波器设计方法,数字巴特沃斯(Butterworth)、切比雪夫(Chebyshev)及椭圆数字滤波器设计方法、步骤及特性。IIR数字滤波器频率变换方法技术,FIR窗函数方法设计滤波器,频率取样方法设计FIR类数字滤波器方法及其特性;(3)离散随机过程:离散随机过程的几个基本特性,功率谱基本性质和计算方法,随机信号通过线性系统;(4)有限长效应:有限长效应引起的误差的分类,不同方法表示负数时量化效应的不同影响。信号由于量化所引入的噪声情形,定点、浮点运算中有限长影响的情形,IIR滤波器、FFT中的数字量化效应情形;(5)功率谱估计:估计理论的几个基本概念,自相关、周期图、直接变换谱估计方法的分析、实现。现代谱估计的几个基本方法。
clear all; %清除所有变量
n=[0:1:11]; %n为0到11间隔为1的数组
m=[0:1:5]; %m为0到5间隔为1的数组
N1=length(n); %N1为数组n的元素个数
N2=length(m); %N2为数组m的元素个数
xn=08^n; %xn为08的n次方
hn=ones(1,N2); %产生1×N2大小的全一矩阵hn
yln=conv(xn,hn); %conv为卷积函数,作用请自己help conv
ycn=circonv(xn,hn,N1); %circonv循环卷积函数?或者估计是自编的函数
ny1=[0:1:length(yln)-1]; %ny1为数组,类似n
ny2=[0:1:length(ycn)-1]; %ny2为数组,类似n
subplot(2,1,1); %将绘图窗口划分为2×1个子窗口(子图),并在第1个子窗口中绘图
stem(ny1,yln); %绘制离散序列,(ny1,yln)
subplot(2,1,2); %在第2个子窗口中绘图
stem(ny2,ycn); %类似
axis([0,16,0,4]); %给定范围 0<x<16;0<y<4
%多学学,这是基本的matlab程序。
FFT(快速傅里叶变换)是一种实现DFT(离散傅里叶变换)的快速算法,是利用复数形式的离散傅里叶变换来计算实数形式的离散傅里叶变换,matlab中的fft()函数是实现该算法的实现。
MATLAB它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
快速傅里叶变换, 即利用计算机计算离散傅里叶变换(DFT)的高效、快速计算方法的统称,简称FFT。快速傅里叶变换是1965年由JW库利和TW图基提出的。采用这种算法能使计算机计算离散傅里叶变换所需要的乘法次数大为减少,特别是被变换的抽样点数N越多,FFT算法计算量的节省就越显著。
扩展资料:
matlab优势特点:
1、高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;
2、具有完备的图形处理功能,实现计算结果和编程的可视化;
3、友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;
4、功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。
参考资料来源:
百度百科-快速傅里叶变换
百度百科-MATLAB
目测你这个函数是不需要输入参数的,所以建议
function y=myconv()
然后在命令窗口直接调用,调用的时候注意程序保存的位置,是否是在当前的搜索路径内。
一、实验目的
1、学会FFT算法程序(或函数)的使用方法;
2、了解序列的线性卷积和圆周卷积之间的关系;
3、验证有限长FFT算法实现线性相关运算的快速计算方法;
4、解FFT的点数对快速卷积与快速相关运算结果所产生的影响;
5、了学会利用FFT算法进行有限长序列的线性卷积的快速计算;
6、掌握基-2快速傅立叶变换(Fast FourierTransform,FFT)的算法原理及其程序实现方法
二、实验原理
1、有限长序列的线性卷积和圆周卷积线性卷积和圆周卷对于有限长序列,存在两种形式的卷积,即积。设x(n)是长度光JM的有限长序列,y(n)是长度为N的有限长序列,则二者的线性卷积可表示为:
M-1
线性卷积的结果序列f(n)是一个长度为L=N +M -1的有限有限长序列,且长序列。将x(n)及y(n)均补零增长为L点的二者的L点的圆周卷积可表示为:
圆周卷积的结果序列f(n)是一个长度为L的有限长序列,由圆周卷积的点数所决定。有限长序列的线性卷积和圆周卷积之间的关系可用公式表示如下:
即:圆周卷积是线性卷积以圆周卷积的点数几为周期进行周期延拓后所取的主值序列。因而,在圆周卷积的点数大于或等于线性卷积的长度时、圆周卷积结果和线性卷积结果相等,这也是快速卷积算法的理论基础之一。
2、离散傅里叶变换的卷积性质
离散傅里叶变换的卷积性质也是快速卷积算法的另一理论基础。若f(n)是有限长序列x(n)和有限长序列y(n)的L点圆周卷积,即公式(5-2),则 f(n)的L点离散傅里叶变换为: F_c (k)=X(k)Y(k)
3、Matlab中FFT与IFFT的实现
离散傅立叶变换(Discrete Fourier Transform, DFT)实现了频域的离散化,方便了计算机处理,在数字信号处理中有着非常重要的作用。但直接计算DFT的运算量与变换长度N的平方成正比,计算量太大。而快速傅立叶变换FFT则是快速计算DFT的有效算法,大大提高了DFT的运算效率,在信号频谱的分析、滤波器频率响应的计算,以及线性卷积的快速计算等方面起着非常重要的作用。FFT 采用分组计算的方式进行DFT的快速计算,具体算法原理参看教材,在附录B中也给出了常用的基-2时间抽取FFT算法和分裂基FFT 算法的C语言程序。相应的,IFFT 则为离散傅里叶反变换,即 IDFT 的快速计算方法。在Matlab中,提供了f(t)和 ifi(t)两个函数来分别实现快速傅立叶变换的正变换和反变换。Ft(t)和if(t)两个函数是用机器语言而不是Matlab 指令写成的,执行速度很快。除了输入、输出参数的含义不同之外,这两个函数的调用方法完全相同,因此以ff()函数为例说明二者的使用方法。ff()函数常用调用格式有两种:
(1)Xk=fft(xn)
其中,xn为输入时域序列x(n),返回结果xk为x(n)的离散傅里叶变换X(k)。当xn是矩阵时(对应于多通道信号),计算xn中每一列信号的离散傅里叶变换。当xn的长度是2的整数幂,采
用基2快速算法计算,否则采用较慢的混合基算法进行计算。
(2)Xk=fft(xn,NFFT)
这种调用格式相比较于上一种调用格式,多了一个输入参数NFFT,用于指定FFT的点数。当NFFT的值是2的整数幂,采用基-2快速算法计算,否则采用较慢的混合基算法进行计算。当xn的长度大于NFFT时,对 xn进行自动截断;当xn的长度小于NFFT时,在xn后自动进行补零。
4、快速卷积基本算法的原理
利用FFT进行有限长序列的线性卷积的快速计算即为快速卷积算法。按照上述相关原理,利用FFT计算线性卷积,即计算公式中的f(n)的算法步骤可用下图来表示:
其中,FFT运算的点数L应满足L≥N+ M-1。为了采用基-2的算法,常常需要L还应满足L=2M
5、快速相关算法原理
利用 FFT 讲行有限长序列相关运算的快速实现则称为快速相关算法。若(n)是长度头M的有限长序列,y(n)是长度为N的有限长序列,则一者的线性百相关序列R(m)与二者的线性卷积运算之间的关系可表示
由于线性卷积可以用FFT讲行快速计算,则按公式,相关运算也可以利用fft进行快速计算,在此不再赘述其原理。需要时,根据傅立叶变换的反折和共轭特性可以减少一次FFT的使用提高计算效率。
三、实验步骤、数据记录及处理
本实验利用Matlab中提供的fft()和 ifft()函数进行快速卷积算法和快速相关算法性卷积和圆周卷积之间的关系进行验证。具体的实验内容和实验的实现,并对有限长序列线
步骤如下所示:
其中:
1、用 Matlab生成两个有限长序列x(n) y(n)
(1)基于fft()和 ifft()函数,编程利用4点快速卷积算法计算有限长序列x(n)与y(n)的卷积,结果令为c1(n)。
(2)基于fft()和 ifft()函数,编程利用速卷积算法计算有限长序列x(n)与y(n)的卷积,结果令为c2(n)
(3)调用conv()函数计算有限长序列x(n)与y(n)的卷积,结果令为c3(n)。分别绘制序列x(n)、y(n)、c1(n)、c2(n)和c3(n)的图形。对结果进行分析,并通过实验结果验证有限长序列线生卷积和圆周卷积之间的关系。
2、设两个有限长序列x(n)和h(n)分别为:
(1)x(n)=(sin 04n)·R,(n+1);
(2)h(n)=(09)"R,o(n+1)
按图所示的快速卷积算法原理编写完整的快速卷积算法程序计算y(n)=x(n)h(n),绘制序列图形,并通过 conv()函数对结果进行验证。
3、将实验1中实验内容4所给定的信号利用快速相关算法进行自相关序列的计算,并将结果与实验1中的结果进行对比验证。
实验程序:
clc;clear all;close all;
nx=0:1:2;x=[1,1,1];%确定x(n)与y(n)的自变量取值范围
ny=0:1:2;y=[2,2,2];%生成x(n)与h(n)
L=pow2(nextpow2(length(x)+length(y)-1));%确定FFT快速卷积的点数
xk=fft(x,L);%计算x的L点FFT,结果为x(k)
yk=fft(y,L);%计算y的L点FFT,结果为y(k)
YK=xkyk;%计算y(k)
c1n=ifft(YK,4);%四点
c2n=ifft(YK,L);%八点
c3n=conv(x,y);%线性卷积
n1=0:1:3;%确定n1的取值范围
n2=0:1:7;%确定n2的取值范围
n3=0:1:4;%确定n3的取值范围
%绘制x(n)与y(n)波形
figure('name','x(n)与y(n)序列');
subplot(2,1,1);stem(nx,x);grid on;xlabel('n');ylabel('x(n)');title('序列x(n)');
subplot(2,1,2);stem(ny,y);grid on;xlabel('n');ylabel('y(n)');title('序列y(n)');
%绘制x(n)与y(n)序列卷积波形
figure('name','x(n)与y(n)序列卷积');
subplot(3,1,1);stem(n1,c1n);grid on;xlabel('n');ylabel('c1(n)');title('x(n)与y(n)的4点fft');
subplot(3,1,2);stem(n2,c2n);grid on;xlabel('n');ylabel('c2(n)');title('x(n)与y(n)的8点fft');
subplot(3,1,3);stem(n3,c3n);grid on;xlabel('n');ylabel('c3(n)');title('x(n)与y(n)的线性卷积');
登录后复制

clc;clear all;close all;
nxn=1:15;nhn=1:20;%确定x(n)与y(n)的自变量取值范围
xn=sin(04nxn);hn=09^nhn;%生成x(n)与h(n)
L=pow2(nextpow2(length(xn)+length(hn)-1));%确定FFT快速卷积的点数
Xk=fft(xn,L);%计算x的L点FFT,结果为x(k)
Hk=fft(hn,L);%计算y的L点FFT,结果为y(k)
Yk=XkHk;%计算YK
y1n=ifft(Yk,L);%对YK调用IFFT,求得y1(n)
y2n=conv(xn,hn);%计算y2(n)的卷积
n1=(nxn(1)+nhn(1)):1:(L+nxn(1)+nhn(1)-1);%确定n1的自变量取值范围
n2=(nxn(1)+nhn(1)):1:(nxn(15)+nhn(20));%确定n2的自变量取值范围
%绘制有限长序列想x(n)与h(n)
figure('name','x(n)与h(n)序列');
subplot(2,2,1);stem(nxn,xn);grid on;xlabel('n');ylabel('x(n)');title('x(n)=(sin04n)R15(n+1)');
subplot(2,2,2);stem(nhn,hn);grid on;xlabel('n');ylabel('h(n)');title('h(n)=((09)^n)R20(n+1)');
subplot(2,2,3);stem(n1,y1n);grid on;xlabel('n');ylabel('y(n)');title('快速卷积法计算y(n)');
subplot(2,2,4);stem(n2,y2n);grid on;xlabel('n');ylabel('y(n)');title('conv()函数计算y(n)');
登录后复制

clc;clear all;close all;
n1=1:100;n2=1:100;%确定n1,n2取值范围
x=[101,82,66,35,31,7,20,92,154,125,85,68,38,23,10,24,83,132,131,118,90,67,60,47,41,21,16,6,4,7,14,34,45,43,48,42,28,10,8,2,0,1,5,12,14,35,46,41,30,24,16,7,4,2,8,17,36,50,62,67,71,48,28,8,13,57,122,138,103,86,63,37,24,11,15,40,62,98,124,96,66,64,54,39,21,7,4,23,55,94,96,77,59,44,47,30,16,7,37,74];
mean(x(:))
x=x-mean(x);
Rx=xcorr(x);
y=x(end:-1:1);
subplot(2,1,1);stem(Rx);grid on;xlabel('t');ylabel('Rx');title('xcorr()函数计算的自相关序列');
L=pow2(nextpow2(length(n1)+length(n2)-1));%确定FFT快速卷积的点数
Xk=fft(x,L);%计算x的L点FFT,结果为x(k)
Yk=fft(y,L);%计算y的L点FFT,结果为y(k)
Rk=XkYk;%计算YK
Rn=ifft(Rk,L);%对RK调用IFFT,求得y1(n)
n=(n1(1)+n2(1)):(L+n1(1)+n2(1)-1);%确定n的自变量取值范围
subplot(2,1,2);stem(1:200,Rn(1:200));grid on;xlabel('t');ylabel('R(n)');title('fft计算的自相关序列');
登录后复制

四、思考题
(1)对实验内容2中快速卷积基本算法的运算量进行分析,即乘法和加法运算次数。
(2)利用实例说明快速卷积基本算法的适用条件,即在什么情况下效率最高。
(3)实验内容3中,如何通过DFT的性质,减少一次ftt()函数的调用,提高计算效率
五、总结
通过此次实验的练习,加深理解FFT 在实现数字滤波(或快速卷积)中的重要作用,更好的利用FFT进行数字信号处理,并且掌握了循环卷积和线性卷积两者之间的关系
问题比较简单,直接给程序。看不懂再问
a,b是两个向量,N是循环卷积点数,要变动可以自己改
clc;
clear
a=[1
2
3
4
5];
b=[1
1
];
N=3;
tmp=conv(a,b);
if
N<length(tmp)
zeropadding
=
N-mod(length(tmp),N);
tmp=[tmp
zeros(1,zeropadding)];
tmp=reshape(tmp,N,length(tmp)/N);
reshlt
=
sum(tmp,2)'
else
result
=
tmp
end
第一篇 MATLAB/Simulink 基础技术篇
第 1章 通信系统与仿真专业基础 2
11 通信系统概述 2
12 通信系统的组成 2
121 信源 2
122 发送设备 3
123 信道 3
124 接收设备 3
125 信宿 3
13 通信系统的分类 4
131 按信源分类 4
132 按传输媒介分类 4
133 按传输信号的特征分类 5
14 仿真技术与通信仿真 7
141 仿真技术 7
142 计算机仿真的一般过程 7
143 通信仿真的概念 8
144 通信仿真的一般步骤 8
15 本章小结 10
第 2章 MATLAB/Simulink仿真
第 2章 原理与 *** 作 11
21 MATLAB/Simulink特点
21 及工作原理 11
211 Simulink主要特点 11
212 Simulink仿真的工作
212 原理 12
22 Simulink的常用 *** 作 13
221 安装与启动 13
222 模块基本 *** 作 14
223 信号线基本 *** 作 19
224 模型的注释 23
225 模型的打印 24
226 模型文件 25
23 子系统及其封装 25
231 创建简单子系统 26
232 创建条件执行子系统 29
233 子系统的封装 36
24 S-function设计与应用 46
241 S-function的基本概念 46
242 在模型中使用
242 S-function 51
243 M文件S-function
242 的编写 55
244 C语言S-function
242 的编写 66
245 S-function Builder
242 的使用方法 75
25 本章小结 82
第二篇 通信系统常用
模块仿真篇
第 3章 信号与信道 84
31 随机数据信号源 84
311 伯努利二进制
311 信号产生器 84
312 泊松分布整数产生器 85
313 随机整数产生器 87
32 序列产生器 88
321 Gold序列产生器 88
322 PN序列产生器 91
323 Walsh序列产生器 93
324 其他 94
33 噪声源发生器 96
331 均匀分布随机噪声
331 产生器 96
332 高斯随机噪声产生器 97
333 瑞利噪声产生器 98
334 莱斯噪声产生器 100
34 信道 101
341 加性高斯白噪声信道 101
342 多径瑞利退化信道 103
343 多径莱斯退化信道 104
35 信号观测设备 106
351 离散的眼图示波器 106
352 星座图观测仪 109
353 离散信号轨迹
353 观测设备 112
354 误码率计算器 113
36 本章小结 114
第 4章 信源编码/译码 115
41 信源编码 115
411 A律编码 115
412 μ律编码 116
413 差分编码 117
414 量化编码 117
42 信源译码 118
421 A律译码 118
422 μ律译码 119
423 差分译码 120
424 量化译码 120
43 本章小结 121
第 5章 调制与解调 122
51 模拟调制解调 122
511 DSB AM调制解调 122
512 SSB AM调制解调 124
513 DSBSC AM调制解调 126
514 FM调制解调 127
515 PM调制解调 129
52 数字基带调制解调 130
521 数字幅度调制解调 130
522 数字频率调制解调 134
523 数字相位调制解调 137
53 本章小结 140
第 6章 均衡器与射频损耗 141
61 CMA均衡器 141
62 LMS均衡器 142
621 LMS判决反馈均衡器 142
622 LMS线性均衡器 144
623 归一化LMS均衡器 145
624 符号LMS均衡器 147
625 变步长LMS均衡器 149
63 RLS均衡器 150
631 RLS判决反馈均衡器 150
632 RLS线性均衡器 152
64 射频损耗 154
641 自由空间路径损耗 154
642 相位噪声 155
643 相位/频率偏移 156
644 其他 156
65 本章小结 157
第 7章 通信滤波器 158
71 滤波器设计模块 158
711 数字滤波器设计 158
712 模拟滤波器设计 161
72 理想矩形脉冲滤波器 162
73 升余弦滤波器 165
731 升余弦发射滤波器 165
732 升余弦接收滤波器 169
74 其他 171
75 本章小结 172
第 8章 差错控制编码/译码 173
81 线性分组码 173
811 BCH编码/译码 174
812 二进制线性编码/译码 176
813 汉明码编码/译码 178
814 二进制循环码编码/
814 译码 179
82 循环卷积码 181
821 卷积码编码器原理 181
822 后验概率解码器 183
823 Viterbi解码器 184
83 CRC循环冗余码校验 187
831 常规CRC产生器 187
832 CRC-N信号产生器 189
833 CRC冗余码校验 190
84 本章小结 192
第 9章 同步 193
91 载波相位恢复 193
911 CPM相位恢复 193
912 M-PSK相位恢复 194
92 定时恢复 195
93 基本锁相环及压控
93 振荡器模块 196
931 基本锁相环 196
932 压控振荡器 197
94 本章小结 199
第三篇 通信系统仿真
综合实例篇
第 10章 蓝牙跳频通信系统仿真设计 202
101 蓝牙技术概述 202
102 蓝牙跳频系统各部分介绍 203
1021 信号传输部分 203
1022 信号接收部分 206
1023 谱分析 210
1024 误码分析部分 212
103 蓝牙跳频系统的仿真模型 213
104 系统运行分析 215
105 本章小结 215
第 11章 直接序列扩频通信
第 11章 系统仿真设计 216
111 扩频通信系统简介 216
1111 技术理论基础 216
1112 系统主要特点 218
1113 系统基本类型 219
112 直接序列扩频通信系统原理 219
1121 系统结构 220
1122 信号分析 220
1123 处理增益和干扰容限 222
113 伪随机序列 224
1131 m序列 225
1132 Gold序列 228
114 直接序列扩频通信系统设计 229
1141 发射机设计 229
1142 接收机设计 230
1143 系统仿真参数 230
1144 系统性能仿真 231
115 直接序列扩频通信
115 系统仿真程序 231
116 本章小结 247
第 12章 IS-95前向链路通信
第 12章 系统仿真设计 248
121 IS-95系统参数与特性 248
1211 IS-95系统参数 248
1212 IS-95系统特性 248
122 IS-95前向链路系统设计 249
1221 发射机设计 250
1222 信道设计 255
1223 接收机设计 256
1224 系统性能仿真 256
123 IS-95前向链路系统
123 仿真程序 257
124 本章小结 269
第 13章 OFDM通信系统仿真设计 270
131 OFDM系统的基本原理 270
1311 正交调制解调 270
1312 系统组成 272
1313 OFDM的优点 275
1314 OFDM的缺点 276
1315 OFDM的关键技术 276
132 OFDM系统的PAPR
132 抑制算法设计 277
1321 OFDM信号的PAPR
1321 及其分布 277
1322 降低PAPR的
1321 常用方法 280
1323 基于改进脉冲成形技
1321 术的PAPR抑制方法 283
133 OFDM系统的同步算法设计 290
1331 OFDM系统中的
1321 同步问题 290
1332 同步偏差对OFDM
1321 信号的影响 291
1333 OFDM同步算法概述 292
1334 OFDM系统的同步
1334 设计 293
134 OFDM系统的编码算法设计 301
1341 通信系统的信道编码 301
1342 卷积码原理及设计 305
1343 交织原理及设计 312
135 OFDM通信系统设计 312
1351 发射机设计 312
1352 接收机设计 316
1353 系统仿真参数 317
1354 系统性能仿真 317
136 OFDM通信系统仿真程序 318
137 本章小结 327
第 14章 MIMO通信系统仿真设计 328
141 MIMO系统理论 328
1411 MIMO系统模型 329
1412 MIMO系统容量分析 330
1413 发送端信道容量
1413 的比较 332
142 OFDM技术简介 333
143 MIMO-OFDM系统结构 335
144 空时编码技术 336
1441 分层空时编码
1441 (BLAST) 336
1442 空时网格编码
1441 (STTC) 337
1443 空时分组编码
1441 (STBC) 338
145 基于STBC的MIMO-OFDM
145 系统设计 342
1451 STBC-MIMO-OFDM
1453 系统模型 342
1452 STBC-MIMO-OFDM
1453 系统性能分析 343
1453 STBC-MIMO-OFDM
1453 通信系统设计 344
146 基于STBC的MIMO-OFDM
146 通信系统仿真程序 345
147 本章小结 351
以上就是关于用FFT对离散信号进行谱分析全部的内容,包括:用FFT对离散信号进行谱分析、请教大家一个问题、matlab中fft()函数是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)