Is concatenation of signals possible in matlab

11 次查看(过去 30 天)
I am trying to have a single graph, which has an exponential wave followed by an impulse and sine wave.
i can generated the signals independently.
My question is, how can i join the signals(like string concatenation).
Any idea is appreciated
  2 个评论
Chirag Gupta
Chirag Gupta 2011-7-25
How are you generating the signals? Can you put some sample code in the question? If the signals are just vectors then you can just concatenate them like:
concat_signal = [exp_curve; imp_curve; sin_curve];
Neels
Neels 2011-7-25
Hi thanks for the help. My program has the main program x.m which calls the subroutine y.m. I am trying to concatenate the two signals in the subroutine y.m
%% x.m
L=0.018
t_step= 0.1221
alpha= 0
L1=0.018
t_step1= 0.1221
alpha1= 0
m = y(L,t_step,alpha)+ y(L1,t_step1,alpha1);
%%y.m
function nt=y(L,t_step,alpha)
bt_new=0
ft_new=0
t_step=0.1221
vgroup = 2e8
it_new=0
t=-5:t_step:100
dx= (t_step*vgroup*1e-9)/2
N= L/t_step;
bt_new= exp(-alpha*t);
for l=0:2.0930e-03:N
ft = 10*exp(-((t-(l.*ones(size(t))*t_step)).^2-(2*l/vgroup))).*dx ;
ft_new =ft_new+ft;
end
yt= conv(ft_new,bt_new);
it= 20*log(yt)/log(10);
imp=zeros(size(t)*t_step);
imp(1.0)=1;
nt=[it;imp]
plot(nt,'-rx');
title 'intensity '
xlabel ''
ylabel ''
It shows the following error in the command window
Warning: Log of zero.
> In y at 26
In x at 9
Warning: Size vector should be a row vector with integer elements.
> In y at 28
In x at 9
??? Error using ==> vertcat
All rows in the bracketed expression must have the same
number of columns.
Error in ==> y at 31
nt=[it;imp]
Error in ==> x at 9
m = y(L,t_step,alpha)+ y(L1,t_step1,alpha1);

请先登录,再进行评论。

采纳的回答

Rick Rosson
Rick Rosson 2011-7-25
Please try the following:
% Exponential signal:
u = exp(...);
% impulse signal:
v = zeros(...);
v(...) = 1;
% Sine wave:
w = cos(...);
% Concatinate the three signals:
x = [ u ; v ; w ] ;
The last line assumes that each of the tree signals is a column vector, where the rows are the discrete-time samples of the signals.
HTH.
Rick

更多回答(2 个)

Jan
Jan 2011-7-25

Praveen Suvarna
Praveen Suvarna 2012-11-5
x = [ u ; v ; w ] ; command may not work in all cases... It will overlap one signal on another.
try x = [ u v w ] ; command also. It will help you out.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by