用FFT对离散信号进行谱分析

用FFT对离散信号进行谱分析,第1张

数字信号处理课程主要研究用数字序列或符号序列表示信号,并用数字计算方法对这些序列进行处理,以便把这些信号变成符合某种需要的形式,例如对信号进行滤波处理、频谱分析、功率谱估计等。本课程重点讨论确定性数字信号的处理,在此基础上,对随机信号处理进行研究。其主要内容有:(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()函数是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9825777.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存