matlab生成旋转因子做fft %生成旋转因子表
%w代表返回值,n运算点数
%uint8一个字节,uint16二个字节,0-65535,uint32四个字节,所以必须注意其占用的内存数据
%如果不涉及运算时间要求的话,应该选择浮点运算,也不必人为放大w的,这样可以使精度提高*/
function [w]=fftw
clear all;
clc;
n=64; %fft点数,可变
% for i=1:n/2
% w(2*i-1)=cos(-2*pi*(i-1)/n);%产生正变换的选择因子
% w(2*i)=sin(-2*pi*(i-1)/n);
% end
%%
for i=1:n/2
w(2*i-1)=cos(2*pi*(i-1)/n);%产生逆变换的选择因子
w(2*i)=sin(2*pi*(i-1)/n);
end
%%
% w=w.*10000;%放大倍数,倍数越大,显然精度越高
% w=int16(w);
%如何保存w作为一个表,fopen可以帮我们直接简历一个txt文件,注意在这里又出现了二进制文件和文本文件的区别
%wt,我们即可以以文本格式打开这个文件,好处是\n的作用得以体现,不会出现黑色实心块。反之,不会换行,并且出现黑色实心块
%参考文献,matlab库函数一书fopen,同时help文档中fopen和fprintf也能有所体现
fid = fopen('w1.txt','wt');
%fprintf(fid,'%d,%d,%d,%d,\n',w);
fprintf(fid,'%3.6f,%3.6f,%3.6f,%3.6f,\n',w);%注意这样输出也是可以的,
fclose(fid);
|