ASK调制信号仿真程序

本文分享了在MATLAB 2018a版本中实现ASK信号仿真的详细过程及代码,解决了因版本差异导致的randi函数参数位置变化问题,帮助后续学习者避免调试陷阱。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近因为学习原因简单学习了一下调制信号,由于没有找到现成的数据集,自己找了下MATLAB仿真调制信号程序,由于版本不同,程序并不能完美运行,通过一番努力,终于搞定(MATLAB2018a)。在这里写出来,让后面的同学少走10分钟的弯路`![这里的randi函数和2016版本不同,参数位置有了一点改变## ASK仿真程序##

n=1:8192;
m=1:128;
***x(n)=randi(2,1,8192);***
x=(x(n))';
y(n)=zeros(1,8192);
z(m)=zeros(1,128);
for n=1:8192
    for m=1:128
        if n== 64*m-63
           z(m)=x(n);
            if m==ceil(n/64)
                y(((64*m-63):(64*m))')=z(m);
            end
        end
    end
end
n=1:8192;
rm2=y(n);
x2=rm2;
n=(1:(2^13));
x1=cos(n.*1e9*2*pi/4e9);
x=x1.*x2;
b=blackman(2^13);
X=b'.*x;
x3=[ones(1,64) zeros(1,8128)];
y1=X(1:(2^13));
y4=x1.*x3;
Y1=fft(y1,(2^13));
magY1=abs(Y1(1:1:(2^12)+1))/(200);
Y4=fft(y4,(2^13));
magY4=abs(Y4(1:1:(2^12)+1))/(37);
k1=0:(2^12);
w1=(2*pi/(2^13))*k1;
u=(2*w1/pi)*1e9;
figure(1);
subplot(2,1,1);plot(u,magY1,'b',u,magY4,'r-.');
grid on;
title('ASKr');
axis([4e8,1.6e9,0,1.1]);
X2=b'.*x2;
y2=X2(1:(2^13));
Y2=fft(y2,(2^13));
magY3=abs(Y2(1:1:(2^12)+1))/(200)+eps;
subplot(2,1,2);semilogy(u,magY2,'b',u,magY3,'r-.');
grid on;
title('ASKr-modulation');
axis([0,1.2e9,3e-2,3]);
figure(2);
subplot(2,1,1);plot(n,x2);
title('ASKr');
axis([0,640,-0.2,1.2]);
grid on;
subplot(2,1,2);plot(n,x);
axis([0,640,-1.2,1.2]);
grid on;`

(https://img-blog.csdnimg.cn/20190124125047395.png)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值