Matlab 生成gif 自干扰消除模拟

本文gif生成参考matlab官方帮助文档

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%绘制gif%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%   模拟自干扰消除 : 调节 幅度 相位 ,达到 等幅 反相 。
%   其中动态函数为RF参考信号(因为Tx端发射功率大,到达self_Rx有相位幅度偏差)
% 构造一个静止的余弦函数 :y1 = 3*sin(2*x1)
% 在静止的余弦函数基础上,构造动态的余弦函数 y = (8-m(t))*sin(2*x1+p(t))
% 其中 m(t) 表示随时间变化的幅度,8-m(t)表示随时间增大,幅度减小,直到 8-m(t) = 3 与静止信号相同
% 同理 p(t) 表示随时间变化的相位, p(t)随时间递增,直到值为pi(180°反相)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%绘制gif%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clc
clear all
close all

%初始化自变量长度(4*pi),步长0.1
%n是为了生成动图的索引(index)
x = 0:0.1:4*pi;
n = 0:0.1:5;          %生成一个数组n,可在右侧变量区查看
phase = 0:0.1:4*pi    %生成一个数组phase,可在右侧变量区查看
nImages = length(n);

fig = figure;
for idx = 1:nImages
    x1 = 0:0.1:4*pi
    y1 = 3*sin(2*x1) %静止的余弦函数
    
    %条件判断是否达到与静止函数反相,没有达到pi(180°)则继续运行
    %达到了就停止增加相位。
    %注意 n 我们设置的长度为5,所以迭代结束 8 - 5 = 3 就等于静止函数的幅度
    %所以不必写判断调幅的判断
    if phase(idx)<pi
        y = (8-n(idx)).*sin(2*x+phase(idx)); %动态的余弦函数
                                             % 开始时,n(1) = 0.1 ,phase(0)=0:
                                             % (8-0)*sin(2x+0.1)=8*sin(2*x1)
    else
        y = (8-n(idx)).*sin(2*x+pi)          %相位达到反相(180°)后则等待幅度迭代到8-5 = 3
    end
    subplot(2,1,1)
    plot(x,y,'LineWidth',5)
    hold on
    plot(x1,y1,'LineWidth',5)
    hold off
    set(gca,'ylim',[-10,10])
    title(['动图y = a(t)*sin(x+p(t)),  n = ' num2str( n(idx)) ])  
    %num2str可以在图形窗显示变化的参数
    legend('SR(参考信号)','SOI+SI[接收端]')
    
    drawnow                  %作图                 
    subplot(2,1,2)
    p=y+y1                   %两个信号叠加
    plot(x,p,'b','LineWidth',5)
    set(gca,'ylim',[-10,10])
    legend('两个信号叠加后的幅度')
    frame = getframe(fig);        %一次迭代截取一帧
    im{idx} = frame2im(frame);    %保存每一帧为了生成gif动图
end

filename = 'UserGif.gif';         %指定生成动图后的图片名字
for idx = 1:nImages
    [A,map] = rgb2ind(im{idx},256);
    if idx == 1
        imwrite(A,map,filename,'gif','LoopCount',Inf,'DelayTime',0.1);      %这里可以设置每一帧延迟速度,可加快动图
    else
        imwrite(A,map,filename,'gif','WriteMode','append','DelayTime',0.1);
    end
end

本文对自干扰消除的模拟并不严谨,只是楼主自己学习后的总结,如有问题请见谅,欢迎指出不足。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值