Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

how to use fCWT to generate pictures for EEG #4

Open
RaphaelLanxi opened this issue May 31, 2022 · 6 comments
Open

how to use fCWT to generate pictures for EEG #4

RaphaelLanxi opened this issue May 31, 2022 · 6 comments

Comments

@RaphaelLanxi
Copy link

I tried to run some cwt generating code but it took me 7 days to finish, too slow, I want to use fCWT instead, although installed, I didn't see specific examples for how to use fCWT to generate pictures just as cwt does, I affiliated the cwt MATLAB code, I'm not so sure how to use fCWT, I will be very grateful if you can help me out, thank you
final_cwt.txt
.

@fastlib
Copy link
Owner

fastlib commented May 31, 2022

Dear Raphael,

Can you show me the code you already wrote? I do not see how your current implementation using MATLAB's CWT function is difficult to merge with the example MATLAB code provided in the fCWT matlab folder? Your 'final_cwt.txt' code is already very similar to the fCWT example fCWT code. Can you elaborate on the issue you're facing?

@RaphaelLanxi
Copy link
Author

debug_fCWT.txt
Hi,
I affiliated the .m file as a .txt file here. Please check. I tried to replace cwt with fcwt, set the input as the example did, but Matlab gave me the mistake "don't support to execute fCWT script as a function", I checked the fCWT.m, it only included conmments, but the "fCWT for MATLAB example" did give an example as [B,fcwtf]=fCWT(A,6,fs,1,10,48), I want to confirm how to use fCWT in this situation, and also how to choose the inputs, especially the last three, why use 2^1-2^10, and why number of octave subdivisions(nds)is 48?
Thanks

@fastlib
Copy link
Owner

fastlib commented Jun 1, 2022

You haven't compiled the MEX-files yet. Please read about MEX files and how you can compile them in the readme. Only then, after you've compiled the .mexmaci64 (MAC) or .mexwin64 (WIN) files, you can use fCWT in Matlab. About the parameter questions, please read the readme, help files, and background information about the CWT. Furthermore, the parameters roughly match those of Matlab's deprecated cwtf function.

@lanxi2025
Copy link

I enabled the MEX compilation and tried both ways (SHARED ON and OFF). But , it is giving following error:
(base) lanxi@lanxi:~/fCWT/build$ make Scanning dependencies of target fCWTmexplan [ 6%] Building CXX object CMakeFiles/fCWTmexplan.dir/src/MEX/fcwtplan.cpp.o [ 13%] Building CXX object CMakeFiles/fCWTmexplan.dir/src/fcwt.cpp.o [ 20%] Building C object CMakeFiles/fCWTmexplan.dir/usr/local/Polyspace/R2021a/extern/version/c_mexapi_version.c.o [ 26%] Linking CXX shared library ../MATLAB/fCWT_create_plan.mexa64 [ 26%] Built target fCWTmexplan Scanning dependencies of target fCWT_example [ 33%] Building CXX object CMakeFiles/fCWT_example.dir/src/fcwt.cpp.o [ 40%] Building CXX object CMakeFiles/fCWT_example.dir/src/main.cpp.o [ 46%] Building CXX object CMakeFiles/fCWT_example.dir/src/rwave.cpp.o [ 53%] Building CXX object CMakeFiles/fCWT_example.dir/src/wavelib.cpp.o [ 60%] Linking CXX executable fCWT_example /usr/bin/ld: CMakeFiles/fCWT_example.dir/src/fcwt.cpp.o: in function fcwt::create_optimization_schemes(int, int, int)':
fcwt.cpp:(.text+0x2c3): undefined reference to fftwf_init_threads' /usr/bin/ld: fcwt.cpp:(.text+0x2cf): undefined reference to fftwf_plan_with_nthreads'
/usr/bin/ld: fcwt.cpp:(.text+0x362): undefined reference to fftwf_plan_dft_r2c_1d' /usr/bin/ld: fcwt.cpp:(.text+0x3d8): undefined reference to fftwf_plan_dft_1d'
/usr/bin/ld: fcwt.cpp:(.text+0x3e0): undefined reference to fftwf_export_wisdom_to_filename' /usr/bin/ld: fcwt.cpp:(.text+0x3f0): undefined reference to fftwf_free'
/usr/bin/ld: fcwt.cpp:(.text+0x3f8): undefined reference to fftwf_free' /usr/bin/ld: fcwt.cpp:(.text+0x4a3): undefined reference to fftwf_alloc_complex'
/usr/bin/ld: fcwt.cpp:(.text+0x4ae): undefined reference to fftwf_alloc_complex' /usr/bin/ld: CMakeFiles/fCWT_example.dir/src/fcwt.cpp.o: in function fcwt::load_optimization_schemes(bool, int, int)':
fcwt.cpp:(.text+0x74e): undefined reference to fftwf_import_wisdom_from_filename' /usr/bin/ld: CMakeFiles/fCWT_example.dir/src/fcwt.cpp.o: in function fcwt::main(float*, float*, int*, int*, int*, int*, float*, int, bool)':
fcwt.cpp:(.text.startup+0xc7): undefined reference to fftwf_alloc_complex' /usr/bin/ld: fcwt.cpp:(.text.startup+0xd7): undefined reference to fftwf_alloc_complex'
/usr/bin/ld: fcwt.cpp:(.text.startup+0x12d): undefined reference to fftwf_init_threads' /usr/bin/ld: fcwt.cpp:(.text.startup+0x139): undefined reference to fftwf_plan_with_nthreads'
/usr/bin/ld: fcwt.cpp:(.text.startup+0x167): undefined reference to fftwf_plan_dft_r2c_1d' /usr/bin/ld: fcwt.cpp:(.text.startup+0x172): undefined reference to fftwf_execute'
/usr/bin/ld: fcwt.cpp:(.text.startup+0x17a): undefined reference to fftwf_destroy_plan' /usr/bin/ld: fcwt.cpp:(.text.startup+0x198): undefined reference to fftwf_plan_dft_1d'
/usr/bin/ld: fcwt.cpp:(.text.startup+0x2bd): undefined reference to fftwf_execute_dft' /usr/bin/ld: fcwt.cpp:(.text.startup+0x2f9): undefined reference to fftwf_destroy_plan'
/usr/bin/ld: fcwt.cpp:(.text.startup+0x301): undefined reference to fftwf_free' /usr/bin/ld: fcwt.cpp:(.text.startup+0x309): undefined reference to fftwf_free'
/usr/bin/ld: fcwt.cpp:(.text.startup+0x30e): undefined reference to fftwf_cleanup_threads' /usr/bin/ld: CMakeFiles/fCWT_example.dir/src/wavelib.cpp.o: in function wavelib::cwt(double*, int, int, int)':
wavelib.cpp:(.text+0x2e): undefined reference to cwt_init' /usr/bin/ld: wavelib.cpp:(.text+0x61): undefined reference to setCWTScales'
/usr/bin/ld: wavelib.cpp:(.text+0x6c): undefined reference to cwt' /usr/bin/ld: wavelib.cpp:(.text+0x78): undefined reference to cwt_free'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/fCWT_example.dir/build.make:132:fCWT_example] 错误 1
make[1]: *** [CMakeFiles/Makefile2:109:CMakeFiles/fCWT_example.dir/all] 错误 2
make: *** [Makefile:130:all] 错误 2
`

@SorryMaker886
Copy link

it cant compile on linux,please use win or mac

@liu7645
Copy link

liu7645 commented Nov 14, 2022

Hi,
I‘m about to use this method to process images, but my C++ programming was so poor. Although I installed it according to fastlib's method, I can't use it. I would appreciate it if you could provide a compiler for Windows or MATLAB under Windows?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants