MATLAB应用1——MATLAB傅里叶函数自行封装
创始人
2024-03-28 19:48:50
0

 

 

 主程序:

%
ex=importdata('data3.txt');
tx = regexp(ex{1}, '\s+', 'split');%按照空格分隔字符串,成为单个cell
yx=str2double(tx);
plot(yx);
ww=yx(2500:9000)-2055;
Fyz_fft(ww,1000);

傅里叶封装函数:

function Fyz_fft(y,Fs)

% Demon:
% Fs = 128;       % 采样频率
% T = 1/Fs;       % 采样时间
% L = 256;        % 信号长度
% t = (0:L-1)*T; % 时间
% y = 5 + 7*cos(2*pi*15*t - 30*pi/180) + 3*cos(2*pi*40*t - 90*pi/180);   %cos为底原始信号

dataLen = length(y); %获取声音长度
t=(0:dataLen-1)/Fs;

subplot(3,1,1);
plot(t, y), title('Source'),grid;  %波形图
xlim([0,100]);
xlabel('Time(s)');
ylabel('Amplitude');

% Y = fft(X) 使用快速傅里叶变换算法返回向量X的离散型傅里叶变换
% Y = fft(X,n) 返回n点的离散傅里叶变换,如果向量X的长度小于n,函数要将向量X补零到长度n;如果向量X的长度大于n, 则函数阶段X使之长度为n。若X是矩阵,按相同方法对X进行处理。

N = 2^nextpow2(dataLen); %采样点数,采样点数越大,分辨的频率越精确,N>=L,超出的部分信号补为0
Y = fft(y,N)/N*2;   %除以N乘以2才是真实幅值,N越大,幅值精度越高
f = Fs/N*(0:1:N-1); %频率
A = abs(Y);     %幅值
subplot(3,1,2);plot(f(1:N/2),A(1:N/2));   %函数fft返回值的数据结构具有对称性,因此我们只取前一半
xlim([0,100]);
title('amplitude-frequency');
xlabel('frequency(Hz)');
ylabel('amplitude');

% P = angle(Y);   %相值
% subplot(3,1,3);plot(f(1:N/2),P(1:N/2));
% title('phase-frequency');
% xlabel('frequency(Hz)');
% ylabel('phase');

%  请参照 http://www.mathworks.com/support/tech-notes/1700/1702.html
xdft = Y(1:N/2+1);
psdx = (1/(Fs*N)) * abs(xdft).^2;
psdx(2:end-1) = 2*psdx(2:end-1);
freq = f(1:N/2+1);
subplot(3,1,3);
plot(freq,10*log10(psdx));%注意这是dB显示,不然就成了频率谱了
% xlim([0,1000]);
xlabel('Frequency (Hz)');
ylabel('Power (dB)');

end

相关内容

热门资讯

银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...