matlab生成可以搬移频点的正弦波

N=1024;
n=0:N-1;
fs=972800000;
t=n/fs;

sin = sin(2*pi*950000*t); %生成sin波形
sin_q =round(sin /max(abs(sin))*8192);
cos = cos(2*pi*950000*t);%生成sin波形
cos_i =round(cos /max(abs(cos))*8192);

fid = fopen('d:/sin_q .txt', 'wt');
fprintf(fid, '%16.0f\n', sin_q);
fclose(fid);

*****************************************************************************************************************

fs = 100000000;            %100M 采样率  
t = 0:1/fs:0.00000999;   % 共1000个点
f1 = 100000;                  % 信号的频率是100k
signal1 = sin(2*pi*f1*t); %生成sin波形
plot(signal1, 'b');            %观察波形

 % 由于正、余弦波形的值在[0,1]之间,需要量化成16bit,先将数值放大

y1 = signal1 * 32768;    % 32 * 1024 = 32768

fid = fopen('d:/matlab_wave_data.txt', 'wt');

fprintf(fid, '%x\n', y1);
fclose(fid);
plot(y1, 'b');

****************************************************************************************************************************************

N=1024;
n=0:N-1;
cos_i=1000*cos(0.002*pi*n); %频率为100m左右取值1024个,多于一个周期
cos_i=round(cos_i/max(abs(cos_i))*32767); % abs() 求绝对值,max() 求最大值,round() 四舍五入

fid = fopen('d:/cos.txt','wt'); %d盘目录下新建文件 

fprintf(fid,'%16.0f\n',cos_i);%将滤波器系数写入文件,以16位浮点数格式保存。16表示16位,0表示没有小数,f表示浮点。

fclose(fid);%文件操作结束,否则,该文件处于只读状态,不能更改和删除

----------------------------------

N=1024;
n=0:N-1;

sin_q = sin(0.002*pi*n); %频率为100m

sin_q =round(sin_q /max(abs(sin_q ))*32767); % abs() 求绝对值,max() 求最大值,round() 四舍五入

fid = fopen('d:/sin.txt','wt'); %d盘目录下新建文件 

fprintf(fid,'%16.0f\n',sin_q);%将滤波器系数写入文件,以16位浮点数格式保存。16表示16位,0表示没有小数,f表示浮点。

fclose(fid);%文件操作结束,否则,该文件处于只读状态,不能更改和删除

**********************************************************************************************************************************************

打开notpad++,ctrl+f,选择替换,原文本: \n 或者 \r 。 替换为: ,

**********************************************************************************************************************************************

fs=100;
N=128;   %采样频率和数据点数
n=0:N-1;
t=n/fs;   %时间序列
x=0.5*sin(2*pi*15*t);%信号
y=fft(x,N);    %对信号进行快速Fourier变换
mag=abs(y);     %求得Fourier变换后的振幅
f=n*fs/N;    %频率序列
subplot(2,2,1),plot(f,mag);   %绘出随频率变化的振幅
xlabel('频率/Hz');
ylabel('振幅');
title('N=128');
grid on;
subplot(2,2,2);
plot(x);%(f(1:N/2),mag(1:N/2)); %绘出Nyquist频率之前随频率变化的振幅
xlabel('时间');
ylabel('振幅');
title('N=128');
grid on;

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值