trying to use integral transform to multiple large arrays but getting an error about array being too large to calculate
2 views (last 30 days)
Show older comments
i'm trying to take the data of x, which is an 88000x1 audio file, and multiply it with my kernal (k) ,which is a 1x15001 array but i keep recieving this error :
Requested 88000x15001 (19.7GB) array exceeds maximum array size preference (15.9GB). This might cause MATLAB to become unresponsive.
which then doesn't allow me to run the code, is there a way to fix my code so that i can get these values?
my origional integral transform equation is 𝑋(Ω) = integral (-inf,inf) of 𝑥(𝑡)*(𝑡,Ω)* dt which i'm trying to convert into a reiman sum to get the value of but i can't get past the step of finding my value for v.
thanks for any help. if you have any questions feel free to ask.
function x = math()
load baseball.mat;
x = record;
prompt2 = ' set a value for 𝜎 , should ne non-negative real number: ';
v = input(prompt2);
sigma = v;
omega = (0:2*pi:30000*pi);
z = sigma + 1i.*omega;
t = 1/44000;
k = exp(-z*t);
v = x.*k;
% S= sum(v);
%
% dt = 1/44000;
%
% X = dt*S;
0 Comments
Answers (1)
darova
on 2 Aug 2021
Maybe you need just interpolate the data to make the same size
% x data with 88000 elements
t1 = linspace(1,88000,15001); % new timespan
x1 = interp1(1:88000,x1,t1); % new vector
y1 = k.*x1; % multiply kernel by x dat
See Also
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!