1. 程式人生 > >【 MATLAB 】兩個序列的卷積和運算的MATLAB實現(1)

【 MATLAB 】兩個序列的卷積和運算的MATLAB實現(1)

設矩形脈衝 x(n) = u(n) - u(n -10) 是脈衝響應 h(n) = (0.9)^nu(n) 的LTI系統的輸入,求輸出 y(n).

下面的指令碼中用到了一個自定義的函式,也就是兩個訊號相加的函式:

function [y,n] = sigadd(x1,n1,x2,n2)
% implements y(n) = x1(n) + x2(n)
% [y,n] = sigadd(x1,n1,x2,n2)
%——————————————————————————————
% y = sum sequence over n, which includes n1 and n2
% x1 = first sequence over n1
% x2 = second sequence over n2( n2 can be different from n1)
%
n = min( min(n1), min(n2) ):max( max(n1), max(n2) ); %duration of y(n)
y1 = zeros(1,length(n)); y2 = y1; %initialization
y1( find( ( n >= min(n1) )&( n <= max(n1) ) == 1  )  ) = x1; %x1 with duration of y1
y2( find( ( n >= min(n2) )&( n <= max(n2) ) == 1  )  ) = x1; %x2 with duration of y2
y = y1 + y2;

直接給出MATLAB指令碼:

clc
clear
close all

% help stepseq
%   generate x(n) = u(n - n0); n1 <= n <= n2
%  _____________________________________________
%  [x,n] = stepseq(n0, n1, n2);
[u1,n1] = stepseq(0,-5,45);
[u2,n2] = stepseq(10,-5,45);

% generate signal x(n)
[x,n] = sigadd(u1,n1,-u2,n2);

% generate signal h(n)
m = -5:45;
h = ( (0.9).^m ).* u1;


% the convolution of x(h) and h(n)
y = conv(x,h);
% ensure the index
nyb = n(1)+ m(1);
nye = n(length(x)) +n(length(h));
ny = nyb:nye;


subplot(3,1,1);
stem(n,x);
title('x(n)');
xlabel('n')

subplot(3,1,2);
stem(m,h);
title('h(n)');
xlabel('n')

subplot(3,1,3);
stem(ny,y);
title('the conv of x(n) and h(n)');
xlabel('n')
xlim([-5,45]);

相關推薦

MATLAB 序列運算MATLAB實現1

設矩形脈衝  是脈衝響應  的LTI系統的輸入,求輸出 y(n). 下面的指令碼中用到了一個自定義的函式,也就是兩個訊號相加的函式: function [y,n] = sigadd(x1,n1,

Java「深入理解Java虛擬機器」學習筆記1 - Java語言發展趨勢

這本書寫的比較早,現在這些功能都已經不同程度的實現了。 1、模組化     JDK9之前的版本都是一個整體,使用者可能只需要使用一個小功能,但他不得不下載整個JDK。不能滿足定製化需求,顯然Java語言的發展因此大大受限。   所以,Sun公司在OpenJDK建立了一個Jigsaw(拼圖)的專案來推動模

演算法紅黑樹插入資料的情況與實現

大家如果有玩魔方,我相信是可以理解我說的東西的,轉魔方就是先把第一面轉出來,然後把第一面作為底面,然後根據遇見的情況來轉魔方(是有公式的) 該系列到現在暫只有3篇文章:   【演算法】紅黑樹(二叉樹)概念與查詢(一):https://blog.csdn.net/lsr40/ar

深度學習之神經網路程式設計實現

void conv_bprop(Layer *layer, Layer *prev_layer, bool *pconnection) { int index = 0; int size = prev_layer->map_w * prev_layer->map_h; // delta

caffe-windows caffe-master 之 核可視化利用matlab

前期準備,需要兩個東西 1. 模型的描述檔案 deploy.prototxt 2. 模型本身lenet_iter_10000.caffemodel (此處用的examples中的mnist裡的) 第一步: 在建立D:\caffe-master\m

typescript物品圍繞旋轉效果

記錄一下旋轉的原理,使用計時器來移動座標,或者改為按幀移動也可。 程式碼裡的物件或其他介面,能看得懂就行,就不貼上來了。 效果:   private _circleCenter = {x: 279, y: 229};//中心,訂半徑 private _aPos

JS陣列的交集 II #排序 #雜湊 #雙指標 #二分查詢

給定兩個陣列,編寫一個函式來計算它們的交集。 示例 1: 輸入: nums1 = [1,2,2,1], nums2 = [2,2] 輸出: [2,2] 示例 2: 輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 輸出: [4,9] 說明: 輸出結

JS 陣列的交集 #排序 #雜湊 #雙指標 #二分查詢

給定兩個陣列,編寫一個函式來計算它們的交集。 示例 1: 輸入: nums1 = [1,2,2,1], nums2 = [2,2] 輸出: [2] 示例 2: 輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 輸出: [9,4] 說明: 輸出結果中

論文解讀|Densenet密集連線的網路附Pytorch程式碼講解

@[t oc] 1 簡單介紹 論文題目:Densely Connected Convolutional Networks 發表機構:康奈爾大學,清華大學,Facebook AI 發表時間:2018年1月 論文程式碼:https://github.com/Wang

GCN網路初探——基於圖Graph的傅立葉變換

本文為從CNN到GCN的聯絡與區別——GCN從入門到精(fang)通(qi)的閱讀筆記,文中絕大部分公式和圖片摘自原文。 文章目錄 一、CNN(卷積神經網路)中的離散卷積 二、GCN基本概念介紹 (一)圖Grap

ES6例子明白箭頭函式this指向問題

前言:es6箭頭函式沒出現之前,this的指向不是函式被建立時繫結,而是被怎麼樣的方式呼叫時繫結的。而箭頭函式剛好相反,箭頭函式的this指向是函式被建立時繫結的,它的指向就是當前詞法作用域中的this

SQL帶order by查詢進行union all報ORA-00933錯誤的解決方法

在oracle SQL中,要求order by是select語句的最後一個語句,而且一個select語句中只允許出現一個order by語句,而且order by必須位於整個select語句的最後。 當時是要將一個十分複雜的檢索明細查詢和一個十分複雜的檢索彙總查詢的結果

一篇關於的通俗易懂的文章

作者用最通俗的語言詮釋了卷積,覺得不錯,公式太抽象,這樣解釋就易懂很多。原文出處不詳。最近總是和卷積打交道,工作需要,每天都要碰到它好幾次,不勝煩惱,因為在大學時候學訊號與系統的時候就沒學會,我於是心想一定要把卷積完全搞明白。正好同辦公室的同學也問我什麼是卷積,師姐昨天也告訴

UOJ 348 WC2018州區劃分——子集

題目:http://uoj.ac/problem/348 參考:https://www.cnblogs.com/NaVi-Awson/p/9242645.html#%E5%AD%90%E9%9B%86%E5%8D%B7%E7%A7%AF FMT就是快速莫比烏斯變換/反演,解決或卷積的問題,和 FWT 時間

彙編程式長整數相乘

STACKS SEGMENT STACK DW 100 DUP(?) TOP LABEL WORD STACKS ENDS DATAS SEGMENT NUM1 DW 9,9,8,7,4,5,6,7,8,9 NUM2 D

Leetcode有序陣列的中位數

解法一: 當合並後的總元素個數是奇數時,中位數的下標是n/2。當總元素個數是偶數時,中位數是下標n/2-1和下標n/2兩個元素的平均值。不論總個數奇偶,可以將n/2作為右中位數,n/2-1作為左中位數,只不過總個數是奇數時,沒用到左中位數。也就是說必須要找到第

TensorFlow第三課 神經網路與影象應用

一,Image classification popeline 一般來說想要使用純程式設計的方式來讓機器識別一張圖片中的東西是非常困難的,常用的方法就是使用一些運算元來獲取影象中的很多的特徵,然後使用

堆疊棧模擬佇列

之前想的太複雜了,過分地考慮空間的利用率,使得邏輯非常複雜,簡直要爆炸,看了標準答案後,媽的如此簡單!! 答案思路:準備兩個棧A,B。A專門用於入隊,B專門用於出隊。 當要入隊時,如果A沒有滿,那麼很正常地把元素壓入A。如果A已經滿了,如果B是空的,我們就把A的元素全部壓

M 序列的公倍數相同,給定N 求M

我們都會求兩個數的最小公倍數,現在的問題和多個數的最小公倍數有關。a和b都是正整數(a<b),用lcm(a,…,b)代表[a,b]區間內的所有數字的最小公倍數,輸入一個正整數N,求最小的M(M>N),滿足: lcm(1,…,M)=lcm(N+1,…,

劍指offer數組中僅僅出現一次的數字1

tdi eof 一個 ase pos acc -s ret n) 轉載請註明出處:http://blog.csdn.net/ns_code/article/details/27649027題目描寫敘述:一個整型數組裏除了兩個數字之外,其它的數字都出現了兩次。請敲代碼找出這