trying to use integral transform to multiple large arrays but getting an error about array being too large to calculate
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
Respuestas (1)
darova
el 2 de Ag. de 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
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!