Hello all, I need to increase the dimensions over which the FFT is calculated to avoid edge effects, and following the suggestion of Samuel Gougeon back in 2016, this was recommended:
Scilab: 6.0.1 data = [1 2 3; 4 5 6; 7 8 9] addedRows = 3; addedCols = 3; tmp = [data ; data($, :) .*. ones(addedRows, 1)]; // add rows to bottom tmp = [tmp tmp(:, $) .*. ones(1,addedCols)]; // add columns to right tmp = [repmat(tmp(1, : ), addedRows, 1) ; tmp]; // add rows to top paddedMat = [repmat(tmp(:,1) , 1, addedCols) tmp] // add columns to left Now, it is important to adjust the input spatial limits (e.g. degrees) for the new grid: e.g. x1 = -1, x2 = 1, y1 = -1, y2 = 1 original spatial limits pad = 1 // add 1 unit to all edges x1a = x1 - pad x2a = x2 + pad y1a = y1 - pad y2a = y2 + pad xx1a = linspace(x1a,x2a,new_xdim) yy1a = linspace(y1a,y2a,new_ydim) [X,Y] = meshgrid(xx1a,yy1a) etc. What I would like to do is then run the FFT on the expanded grid and then clip it back to the original dimensions (before padding) and spatial limits after processing. Is there a simple solution to this? I was thinking resize_matrix(data,dimx,dimy), but not sure how to get the original grid clipped out. So in the example above, go from the padded limits (-2,2,-2,2) back to (-1,1,-1,1). Sorry if this is a really simple solution, still learning! Thanks Lester -- Sent from: http://mailinglists.scilab.org/Scilab-users-Mailing-Lists-Archives-f2602246.html _______________________________________________ users mailing list [email protected] http://lists.scilab.org/mailman/listinfo/users
