matlab与数字信号处理的不定期更新

Matlab 复制代码
function [y,n] = sigshift(x,nx,m)
% 实现 y(n) = x(n-m)   m>0右移,m<0左移
n = nx + m;    % 1. 新的时间轴(n) = 旧时间轴(nx) + 平移量(m)
y = x;         % 2. 样本值本身不变,只是"搬家"
end

//
sigshift:函数名

x,nx,m:输入的形参

y,n:return
Matlab 复制代码
function [y,n] = sigadd(x1,n1,x2,n2)
% 功能:把两条任意长度、任意起点/终点的序列相加
% 调用:[y,n] = sigadd(x1,n1,x2,n2)
% 输入:x1,n1 ------ 第一条序列的"值"和"时间轴"
%       x2,n2 ------ 第二条序列的"值"和"时间轴"
% 输出:y,n   ------ 相加后的序列和对应的时间轴

% 1. 找出公共时间范围:从最早点开始到最晚点结束
n = min(min(n1),min(n2)):max(max(n1),max(n2));

% 2. 先按公共长度填两条全零序列,准备"插值"
y1 = zeros(1,length(n));   % 第一条序列的"插值板"
y2 = y1;                   % 第二条序列的"插值板"

% 3. 把 x1 的原始值塞进公共轴上它本该在的位置,其余保持 0(补零)
y1(find((n>=min(n1))&(n<=max(n1))==1)) = x1;

% 4. 同理,把 x2 也塞进公共轴
y2(find((n>=min(n2))&(n<=max(n2))==1)) = x2;

% 5. 现在两条序列长度一致、时间轴一致,逐点相加即可
y = y1 + y2;
end
Matlab 复制代码
x = [1 2 3 4 5 6 7 6 5 4 3 2 1];
nx = 0:length(x)-1;

% (a) x1(n)=2x(n-5)-3x(n+4)
[x5,n5] = sigshift(x,nx, 5);     % x(n-5)
[x4,n4] = sigshift(x,nx,-4);     % x(n+4)

[x1,n1] = sigadd(2*x5,n5, -3*x4,n4);

figure(1);
stem(n1,x1,'filled'); grid on;
xlabel('n'); title('x_1(n) = 2x(n-5) - 3x(n+4)');

在 MATLAB 里,符号 ":" 只有两种最常见、最核心的含义:

  1. 生成等间隔向量 ("冒号表达式"):起点 : 步长 : 终点
Matlab 复制代码
0:5          % → [0 1 2 3 4 5]
1:2:9        % → [1 3 5 7 9]
10:-1:6      % → [10 9 8 7 6]
  1. 用来索引、截取数组("冒号索引"):数组(起始下标 : 步长 : 结束下标)
Matlab 复制代码
A = [10 20 30 40 50];
A(2:4)       % → [20 30 40]
A(1:2:end)   % → [10 30 50]   隔一个取一个

冒号 ":" 在 MATLAB 里要么是

"生成一串数 ",要么是

"取一串元素"------其余花哨用法都是这两件事的变形。


相关推荐
Chester_19997 小时前
CSP202203C.计算资源调度器
开发语言·数据结构·c++·蓝桥杯
EXI-小洲8 小时前
Java 操作 Word:字符串替换、图片插入、动态生成表格与API接口下载
java·开发语言·spring boot·word
会周易的程序员8 小时前
给 PLC 写一个字节码虚拟机:STVM 虚拟机架构设计
开发语言·c++·虚拟机·软plc·iec61131·stvm
机器视觉知识推荐、就业指导9 小时前
为什么老说“纯 Qt 没啥就业市场”?
开发语言·qt
telepan9 小时前
Qt 开发避坑与性能指南:如何优雅、安全地定义全局常量字符串?
开发语言·qt
m0_695251499 小时前
Qt MaintenanceTool 使用国内镜像加速下载(超详细教程)
开发语言·qt
大衛說10 小时前
《Python 从入门到精通》系列总览与学习路线
开发语言·python·学习
吃好睡好便好11 小时前
查找函数的使用
学习·算法·matlab·生活·查找函数
可乐鸡翅yeah_11 小时前
hls.js 内存泄漏实战排查,直播 M3U8 长时间播放异常定位方案
开发语言·javascript·python·django·ecmascript·m3u8·m3u8在线
2601_9622035111 小时前
Java进阶07集合(续)
java·开发语言