Matalab 实现正余弦函数的傅里叶变化与反傅里叶变化

您所在的位置:网站首页 正弦的频谱函数 Matalab 实现正余弦函数的傅里叶变化与反傅里叶变化

Matalab 实现正余弦函数的傅里叶变化与反傅里叶变化

2024-07-08 21:47:11| 来源: 网络整理| 查看: 265

Matalab 实现正余弦函数的傅里叶变化与反傅里叶变化

这是《通信原理》课程的第一次作业,本文介绍了如何使用 MATLAB 实现正余弦函数的傅里叶变换与反傅里叶变换,并附带了相应的代码和实现效果图。在这过程中,还会涉及一些必要的知识点。

1. 实现效果图

matalab效果图

2.代码 %test1:不同的正弦余弦信号然后经过傅里叶变化后画图 x = linspace(0, 20*pi, 100); %生成x的值,值的范围为(0,20*pi),共生成100的点 % 计算正弦函数和余弦函数的值,自己写的正弦余弦函数,可以根据自己的需求进行更改函数 y_sin = 2*sin(x); y_cos = 2*cos(3*pi*x); % 使用fft函数进行傅里叶变换 Y_sin = fft(y_sin); Y_cos = fft(y_cos); % 计算频率轴上的数据点 f = linspace(0, 1, length(Y_sin)); % 绘制原正弦函数的图像 subplot(2, 3, 1); % 创建一个 2x3 的图像区域,并选择第一个子图 plot(x, y_sin, 'b', 'LineWidth', 2); % 使用蓝色线条绘制正弦函数 title('Sine Function'); xlabel('x'); ylabel('sin(x)'); % 绘制原余弦函数的图像 subplot(2, 3, 2); % 选择第二个子图 plot(x, y_cos, 'r', 'LineWidth', 2); % 使用红色线条绘制余弦函数 title('Cosine Function'); xlabel('x'); ylabel('cos(x)'); % 绘制函数进行傅里叶变换结果的图像 subplot(2, 3, 3); % stem(f, abs(Y_sin), 'b', 'LineWidth', 2); % 使用蓝色柱状图绘制正弦函数的频谱幅度 title('Sine Function Fourier Transform'); xlabel('Frequency (Hz)'); ylabel('Magnitude'); subplot(2, 3, 4); % stem(f, abs(Y_cos), 'r', 'LineWidth', 2); % 使用红色柱状图绘制余弦函数的频谱幅度 title('Cosine Function Fourier Transform'); xlabel('Frequency (Hz)'); ylabel('Magnitude'); % 进行反傅里叶变换并绘制图像 subplot(2, 3, 5); % 第五个 y_sin_reconstructed = ifft(Y_sin); % 对正弦函数的频谱进行反傅里叶变换 plot(x, real(y_sin_reconstructed), 'b', 'LineWidth', 2); % 使用蓝色线条绘制反傅里叶变换结果 title('Sine Function Inverse Fourier Transform'); xlabel('x'); ylabel('Amplitude'); subplot(2, 3, 6); % 第六个 y_cos_reconstructed = ifft(Y_cos); % 对余弦函数的频谱进行反傅里叶变换 plot(x, real(y_cos_reconstructed), 'r', 'LineWidth', 2); % 使用红色线条绘制反傅里叶变换结果 title('Cosine Function Inverse Fourier Transform'); xlabel('x'); ylabel('Amplitude'); 3. 代码解析

在给定的代码中,实现了以下步骤:

生成自变量 x 的值,范围为 (0, 20π),共生成 100 个点。计算正弦函数和余弦函数的值。使用 fft 函数对正弦函数和余弦函数进行傅里叶变换,得到频域表示。计算频率轴上的数据点。绘制原始正弦函数和余弦函数的图像。绘制正弦函数和余弦函数经过傅里叶变换后的频域表示图像。使用 ifft 函数对频域数据进行反傅里叶变换,得到恢复的时域信号。绘制正弦函数和余弦函数进行反傅里叶变换后的恢复时域信号图像。 4.傅里叶变换简介

傅里叶变换是一种将时域信号转换为频域信号的数学工具。它可以将一个信号分解成一系列复杂振幅和相位的正弦和余弦函数。傅里叶变换在信号处理、通信和图像处理等领域有广泛应用。

傅里叶变换的公式如下: F ( k ) = ∫ − ∞ ∞ f ( x ) ⋅ e − 2 π i k x d x F(k) = \int_{-\infty}^{\infty} f(x) \cdot e^{-2\pi i k x} dx F(k)=∫−∞∞​f(x)⋅e−2πikxdx

其中, f ( x ) f(x) f(x) 为原始信号, F ( k ) F(k) F(k) 为频域表示。

5. 傅里叶逆变换公式

傅里叶逆变换是将频域信号转换回时域信号的过程。傅里叶逆变换的公式如下: f ( x ) = ∫ − ∞ ∞ F ( k ) ⋅ e 2 π i k x d k f(x) = \int_{-\infty}^{\infty} F(k) \cdot e^{2\pi i k x} dk f(x)=∫−∞∞​F(k)⋅e2πikxdk

其中, f ( x ) f(x) f(x) 为恢复的时域信号, F ( k ) F(k) F(k) 为频域信号。

6. MATLAB 中的 fft 和 ifft 函数

MATLAB 提供了 fft (Fast Fourier Transform) 函数和 ifft (Inverse Fast Fourier Transform) 函数,用于进行快速傅里叶变换和反傅里叶变换。

fft 函数将时域信号转换为频域信号,返回复数形式的频域表示.ifft 函数将频域信号转换为时域信号,返回恢复的时域信号。 fft函数

MATLAB中的fft函数用于对给定的离散序列进行快速傅里叶变换,并返回一个长度为N的复数向量。当输入向量的长度不是2的幂时,会自动补零到2的幂次方,并返回长度为N=2^nextpow2(length(x))的向量。

例如,对一个长度为N的向量x进行fft变换:

y = fft(x);

将得到一个长度为N的符合频率表示的复数列,其中y(1)为直流分量(频率为0), y(2:N/2+1)为正频率分量,y(N: -1:N/2+2)为负频率分量。

ifft函数

MATLAB中的ifft函数用于对给定的频域序列进行傅里叶逆变换,并返回一个长度为N的复数向量。需要注意的是,ifft函数返回的向量不需要进行归一化,若需要将ifft函数得到的结果作为信号的时域表达式,则需要将它除以N进行归一化处理。

例如,对一个长度为N的向量y进行ifft变换:

x = ifft(y);

将得到一个长度为N的符合时域表示的复数列,其中x(1)为直流分量(时间为0), x(2:N/2+1)为正时间分量,x(N: -1:N/2+2)为负时间分量。

最后: 以上是个人的课程作业记录,欢迎大家提出改进意见。😊



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭